2012-05-22 16 views
96

मेरे पास एक सूची है और ली के पास float:left; है। <ul> के बाद सामग्री को सही ढंग से संरेखित किया जाना चाहिए। इसलिए मैं निम्नलिखित का निर्माण कर सकते हैं:का उपयोग: फ़्लोटिंग तत्वों को साफ़ करने के बाद

http://jsfiddle.net/8unU8/

मैंने सोचा, कि मैं जैसे छद्म चयनकर्ताओं का उपयोग करके <div class="clear"> निकाल सकते हैं: के बाद।

लेकिन उदाहरण के काम नहीं कर रहा:

http://jsfiddle.net/EyNnk/

मैं हमेशा चल तत्वों स्पष्ट करने के लिए एक अलग div बनाने के लिए है?

उत्तर

231

लिखें इस तरह:

.wrapper:after { 
    content: ''; 
    display: block; 
    clear: both; 
} 

चेक इस http://jsfiddle.net/EyNnk/1/

+0

यह कैसे करना है। लेकिन कृपया अर्थशास्त्र के बारे में मेरे उत्तर में बिंदु ध्यान दें। – Alex

+2

बस एक मामूली जानकारी: ':: बाद में डबल कॉलन के साथ छद्म-तत्वों को लक्षित करने का अनुशंसित तरीका है। – Dennis98

+7

डबल ब्राउन का समर्थन करने वाले प्रत्येक ब्राउज़र (:) :) CSS3 सिंटैक्स भी (:) सिंटैक्स का समर्थन करता है, लेकिन आईई 8 केवल एकल-कोलन का समर्थन करता है, इसलिए अभी, केवल सर्वोत्तम कॉलर समर्थन के लिए एकल-कोलन का उपयोग करने की अनुशंसा की जाती है । :: छद्म चयनकर्ताओं से छद्म सामग्री को अलग करने के लिए इंडेंट किया गया नया प्रारूप है। यदि आपको IE 8 समर्थन की आवश्यकता नहीं है, तो डबल-कोलन का उपयोग करने में संकोच न करें। https://css-tricks.com/almanac/selectors/a/after-and-before/ – retroriff

0

पाठ 'dasda' एक टैग के अंदर, सही नहीं कभी नहीं होगा? शब्दार्थ और वैध यह HTML के रूप में हो सकता है, सिर्फ इतना है कि करने के लिए स्पष्ट वर्ग को जोड़ने के होने के लिए:

http://jsfiddle.net/EyNnk/2/

+1

यह अर्थशास्त्र नहीं है। 1) हम हमेशा माता-पिता तत्व को साफ़ करते हैं यदि उसके बच्चे ने आपके जवाब के अनुसार उदाहरण दिया है, यदि मैं यूएल में पृष्ठभूमि देना चाहता हूं तो यह एलआई को कवर नहीं करता है क्योंकि यूएल स्पष्ट नहीं है और 2) मेरे पास एक सवाल है कि आप स्पष्ट क्यों देते हैं पी से पहले एक अलग डीआईवी में कक्षा।यदि आप केवल पी को देते हैं तो यह भी काम करता है – sandeep

6

नहीं, आप नहीं यह काफी कुछ इस तरह करना है:

<ul class="clearfix"> 
    <li>one</li> 
    <li>two></li> 
</ul> 

और निम्नलिखित सीएसएस:

ul li {float: left;} 


.clearfix:after { 
    content: "."; 
    display: block; 
    clear: both; 
    visibility: hidden; 
    line-height: 0; 
    height: 0; 
} 

.clearfix { 
    display: inline-block; 
} 

html[xmlns] .clearfix { 
    display: block; 
} 

* html .clearfix { 
    height: 1%; 
} 
0

उपयोग

.wrapper:after { 
    content : '\n'; 
} 

रोको द्वारा प्रदान किए गए समाधान की तरह। यह psuedo से पहले: के बाद और: सामग्री का उपयोग/सम्मिलित करने की अनुमति देता है। विवरण की जाँच के लिए http://www.quirksmode.org/css/content.html

3

यह रूप में अच्छी तरह से काम करेगा:

.clearfix:before, 
.clearfix:after { 
    content: ""; 
    display: table; 
} 

.clearfix:after { 
    clear: both; 
} 

/* IE 6 & 7 */ 
.clearfix { 
    zoom: 1; 
} 

, अपने ul तत्व माता पिता तत्व को वर्ग clearfix दें उदाहरण के लिए।

स्रोत here और here

+0

डिस्प्ले: तालिका अतिरिक्त अंतर जोड़ सकती है; मैं प्रदर्शन का उपयोग करता हूं: इसके बजाय ब्लॉक –

संबंधित मुद्दे