एक ही पृष्ठभूमि के रंग वाले तीन डिवीजनों के बीच अजीब अंतराल कैसे निकालें?


23

मैं काफी समय से इस मुद्दे से जूझ रहा हूं। इस मुद्दे को मोबाइल उपकरणों (एंड्रॉइड और आईओएस) पर देखा जा सकता है, कुछ उपकरणों को थोड़ा-थोड़ा करके ज़ूम-इन करने की आवश्यकता हो सकती है। पीसी पर, मैं मोबाइल मोड पर स्विच करने पर क्रोम बग पर भी इस बग को पुन: पेश कर सकता हूं। नीचे बग को पुन: पेश करने के लिए कोड का उपयोग किया गया है:

<!DOCTYPE html>
<html lang="en">
<head>
  <style>
    .top {
      height: 100px;
      background-color: #553213;
    }
    .middle {
      height: 100px;
      background-color: #553213;
    }
    .bottom {
      height: 100px;
      background-color: #553213;
    }
  </style>
</head>
<body>
  <div style="width:300px; height: 300px">
    <div class="top"></div>
    <div class="middle"></div>
    <div class="bottom"></div>
  </div>
</body>
</html>

अपेक्षित परिणाम एक div होगा जो # 553213 रंग के साथ पूरा होता है। हालांकि, कुछ मोबाइल उपकरणों पर, वे उन तीन विभाजनों के बीच अतिरिक्त लाइनें (या अंतराल) प्रदर्शित करते हैं।

ओम मेरे आईफोन

यहां छवि विवरण दर्ज करें

मेरे पीसी पर, मोबाइल मोड के साथ क्रोम ब्राउज़र का उपयोग करना

यहां छवि विवरण दर्ज करें

क्या किसी को पता है कि यहाँ क्या हो रहा है? यह कैसे होता है और इसे कैसे ठीक किया जाए, इस बारे में कोई भी विचार वास्तव में सराहा जाएगा।


3
आपके पास मार्जिन 0 क्यों है? मैं पुन: पेश नहीं कर सकता, शायद प्रत्येक div पर -1px के मार्जिन को सेट करने का प्रयास करूं।
मैडिसन कोर्ट्टो

3
मुझे भी। एक पीसी पर पुन: पेश नहीं कर सकता। संभवतः एक फ़ोन ब्राउज़र समस्या।
asprin

3
मोबाइल ब्राउज़र समस्याएँ
लूई किम

3
ऐसा लगता है कि यह कुछ ब्राउज़रों / ऑपरेटिंग सिस्टम / उपकरणों के साथ एक समस्या है। इस संभावना का मतलब है कि आप केवल एक हैक का उपयोग करके इसे 'ठीक' कर सकते हैं। या बग को ठीक करने के लिए इन ब्राउज़रों / ऑपरेटिंग सिस्टम / उपकरणों के डेवलपर्स को सुझाव दें।
दान

2
चूँकि इन सभी divs की पृष्ठभूमि एक ही है तो क्या आप इसके बजाय मूल तत्व पर पृष्ठभूमि रंग नहीं डाल सकते हैं?
Moob

जवाबों:


6

मुझे यह उत्तर मिला ।

तो समाधान एक जोड़ने के लिए है margin-top: -1px;करने के लिए top, middleऔर bottomवर्गों।

<!DOCTYPE html>
<html lang="en">
<head>
  <style>
    .top {
      height: 100px;
      background-color: #553213;
    }
    .middle {
      height: 100px;
      background-color: #553213;
    }
    .bottom {
      height: 100px;
      background-color: #553213;
    }
    
    .top, .middle, .bottom {
      margin-top: -1px;
    }

  </style>
</head>
<body>
  <div style="width:300px; height: 300px;">
    <div class="top"></div>
    <div class="middle"></div>
    <div class="bottom"></div>
  </div>
</body>
</html>

और यह मोबाइल और पीसी पर भी अच्छा लगता है। divरों ऊंचाई नहीं बदलता है। यह बनी हुई है 300px


5

मुझे लगता है कि यह पृष्ठ के पैमाने के कारण है। इस मेटा टैग को सिर पर जोड़ने का प्रयास करें:

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">


4

टिप्पणियों को पढ़ने के बाद मैंने देखा कि मैडिसन कोर्ट्टो का एक सुझाव था

margin: -1px;

जो वास्तविक मुद्दे को हल करने के लिए पुष्टि की गई थी, लेकिन इसने पृष्ठ के अन्य हिस्सों पर मुद्दों को जन्म दिया है। तो, आइए इस विचार को केवल वास्तविक divs के लिए लागू करें:

<!DOCTYPE html>
<html lang="en">
<head>
  <style>
    .top {
      height: 100px;
      background-color: #553213;
    }
    .middle {
      height: 100px;
      background-color: #553213;
    }
    .bottom {
      height: 100px;
      background-color: #553213;
    }
  </style>
</head>
<body>
  <div style="width:300px; height: 300px">
    <div class="top" style="margin: -1px;"></div>
    <div class="middle" style="margin: -1px;"></div>
    <div class="bottom" style="margin: -1px;"></div>
  </div>
</body>
</html>

3

के साथ प्रयास करें background। यह मेरे मोबाइल में ठीक काम करता है:

<!DOCTYPE html>
<html lang="en">
<head>
  <style>
    .top {
      height: 100px;
    }
    .middle {
      height: 100px;
      }
    .bottom {
      height: 100px;
      }
    div{
      background:#553213;
    }
  </style>
</head>
<body>
  <div style="width:300px; height: 300px">
    <div class="top"></div>
    <div class="middle"></div>
    <div class="bottom"></div>
  </div>
</body>
</html>

मुझे नहीं पता कि वास्तविक कारण क्या है। लेकिन जब मैंने नीचे कोशिश की तो सफेद रेखाओं का रंग काला हो गया, तब मुझे यह विचार आया:

<!DOCTYPE html>
<html lang="en">
<head>
  <style>
    .top {
      height: 100px;
      background-color: #553213;
    }
    .middle {
      height: 100px;
      background-color: #553213;
    }
    .bottom {
      height: 100px;
      background-color: #553213;
    }
    div:hover{background:#000;}
  </style>
</head>
<body>
  <div style="width:300px; height: 300px">
    <div class="top"></div>
    <div class="middle"></div>
    <div class="bottom"></div>
  </div>
</body>
</html>

ऊपर या नीचे div पर क्लिक करें


2

इस मुद्दे का कारण हो सकता है कि जिस तरह से display block, inline-blockशैलियों को अलग-अलग स्क्रीन पर विभिन्न ब्राउज़रों द्वारा नियंत्रित किया जा रहा है।

उदाहरण के लिए, inline-blockतत्वों में दाईं ओर एक ऑटो छोटा स्थान होगा। नकारात्मक रूप से उपयोग करने वाले लोग इसका समाधान करते हैं margin-left


डिफ़ॉल्ट रूप से, a divएक हैblock स्तर तत्व है।

यह निचला स्थान जो आप सामना कर रहे हैं, वह ब्लॉक ब्लॉक तत्वों को संभालने के तरीके के कारण भी हो सकता है।


जैसे inline-blockनकारात्मक के साथ अंतरिक्ष को हल करनाmargin-left ,

यह blockस्तर स्थान या तो उपयोग करके हल किया जा सकता है

  • नकारात्मक margin-top या
  • divया तो शैली बदल रहा है table, table-cellटाइप या flexboxसीएसएस का उपयोग कर

2

<!DOCTYPE html>
<html lang="en">

<head>
    <style>
        .top,
        .middle,
        .bottom {
            min-height: 100px;
            width: 100%;
            background-color: #553213;
            margin-bottom: -6px;
            display: inline-block;
            padding: 15px 0;
        }
    </style>
</head>

<body>
    <div style="width:300px; height: 300px">
        <div class="top"></div>
        <div class="middle"></div>
        <div class="bottom"></div>
    </div>
</body>

</html>


1

इस समस्या को छिपाने के लिए एक छोटी रूपरेखा जोड़ें :

.container > * {
  height: 100px;
  background-color: #553213;
  outline:1px solid #553213;
}

.container {
  width:300px;
  height:300px;
}
<div  class="container">
  <div class="top"></div>
  <div class="middle"></div>
  <div class="bottom"></div>
</div>


यह काम नहीं करता है
गुयेन यू

@Nguyen आप भले ही 1px कोशिश करें?
तैमनी अफिफ

1
हाँ! हालाँकि, मुझे कुछ दिलचस्प मिला जब रूपरेखा-चौड़ाई को बढ़ाकर 35px कर दिया गया। अजीब अंतराल का एक गुच्छा दिखाई देता है।
गुयेन यू

1

बस शीर्ष और मध्य divs के मार्जिन-तल को जोड़ने का प्रयास करें।

<!DOCTYPE html>
<html lang="en">
<head>
  <style>
    .top {
      height: 100px;
      background-color: #553213;
	  margin-bottom: -2px;
    }
    .middle {
      height: 100px;
      background-color: #553213;
	  margin-bottom: -2px;
    }
    .bottom {
      height: 100px;
      background-color: #553213;
    }
  </style>
</head>
<body>
  <div style="width:300px; height: 300px">
    <div class="top"></div>
    <div class="middle"></div>
    <div class="bottom"></div>
  </div>
</body>
</html>

उम्मीद है की यह मदद करेगा।


1

स्टाइल को ठीक करने के लिए डिस्प्ले और मार्जिन बॉटम का उपयोग करें।

.top, .middle, .bottom {
    height: 100px;
    background-color: #553213;
    margin-bottom: 5px;
    display: block;
}

1

स्टाइल को ठीक करने के लिए डिस्प्ले और मार्जिन बॉटम का उपयोग करें।

<!DOCTYPE html>
<html lang="en">
<head>
  <style>
  .top, .middle, .bottom {
    height: 100px;
    background-color: #553213;
    margin-bottom: 5px;
    display: block;
}
  </style>
</head>
<body>
  <div style="width:300px; height: 300px">
    <div class="top"></div>
    <div class="middle"></div>
    <div class="bottom"></div>
  </div>
</body>
</html>

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.