2012-06-10 12 views
10

में बाईं ओर सभी तरह से संरेखित नहीं कर रही है मेरे पास एक असाधारण सूची है जिसे मैं एक साधारण नेविगेशन बार के रूप में उपयोग कर रहा हूं। यही कारण है कि नीचे की तरह दिखता है:अनॉर्डर्ड सूची एक div

enter image description here

आप देख कि हालांकि <li> तत्वों <div> के बाईं वे में निहित हैं मैं युक्त <div> में text-align: left; की कोशिश की है, लेकिन ऐसा लगता है कि करने के लिए सभी तरह से संरेखित नहीं कर रहे हैं कर सकते हैं। कोई प्रभाव नहीं है।

प्रासंगिक HTML:

<div id="menu">                   
    <div id="menutop">                 
     <ul>                    
      <li><a href="#">Home</a></li>            
      <li><a href="#">About</a></li>            
     </ul>                   
    </div>  

प्रासंगिक सीएसएस:

#menu { 
    width: 800px; 
    margin: 0 auto; 
} 

#menu div { 
    float: left; 
    width: 400px; 
    height: 60px; 
    background-color: #CACACA; 
} 

#menutop { 
    text-align: left; 
} 

#menutop ul { 
    list-style: none; 
} 

#menutop li { 
    display: inline; 
    padding: 10px; 
} 

#menutop a { 
    color: #000000; 
    text-decoration: none; 
} 

#menutop a:hover { 
    text-decoration: underline; 
} 

कोई भी विचार?

+0

क्या आपने 'उल' के 'मार्जिन' को हटाने का प्रयास किया है? – PeeHaa

+0

जेएसफ़िल्ड काम पर होने के रूप में अपना कोड रखना अपेक्षित है। http://jsfiddle.net/5wCZk/। आपकी समस्या कहीं और है। –

+0

आप हमेशा ऋणात्मक मार्जिन का उपयोग कर सकते हैं: 'मार्जिन-बाएं: -10 पीएक्स' – TylerH4

उत्तर

29

ul और li डिफ़ॉल्ट रूप से ब्राउज़र के आधार पर मार्जिन या पैडिंग है। आप अपने मेनू के भीतर इस डिफ़ॉल्ट शैली ओवरराइड करने के लिए की जरूरत है:

#menu ul, #menu li { 
    margin: 0; padding: 0; 
} 

डेमो देखें here

नोट: डिफ़ॉल्ट रूप से, jsfiddles एक सीएसएस रीसेट हो जाता है, इसलिए हमेशा अच्छी तरह से बात इस तरह का परीक्षण करने के लिए अनुकूल नहीं है । इस प्रकार की बग की तलाश करते समय "सामान्यीकृत सीएसएस" को अक्षम करना सुनिश्चित करें।

+0

धन्यवाद। मुझे 'उल' और 'li' तत्वों का एहसास नहीं हुआ था, डिफ़ॉल्ट रूप से पैडिंग और मार्जिन था। –

+0

@NicYoung: यही कारण है कि जब वे सूची के रूप में उपयोग किए जाते हैं तो वे इंडेंट दिखाई देते हैं। विभिन्न ब्राउज़र विभिन्न तरीकों से इंडेंटेशन प्राप्त करते हैं। – Eric

2

CSS Reset का उपयोग करने का प्रयास करें।

सरलतम रूप है:

* { margin: 0; padding: 0; } 
+1

सुनिश्चित नहीं है कि सबकुछ रीसेट करना यहां जाने का सबसे अच्छा तरीका है। यह शायद पूरी जगह पर चीजें तोड़ देगा। – Eric

+0

@Eric: यदि रीसेट करना आपकी वेबसाइट को तोड़ता है, ** आपकी समस्या है! ** –

+0

यह कुछ हद तक सच है। हालांकि यहां एक और मुद्दा है। रीसेट करने के बाद, आपको 'ul' के लिए _actual list_ में उपयोग करने के लिए मूलभूत शैली को परिभाषित करने की आवश्यकता है। एक बार फिर, आपको एक ही समस्या है। नेविगेशन में आपको मार्जिन और पैडिंग रीसेट _specific_ की आवश्यकता है। – Eric

0

<ul> तत्व संरेखित छोड़ दिया है, लेकिन <li> तत्वों 10px करने के लिए padding-left सेट है। यही कारण है कि पहला तत्व दाईं ओर थोड़ा सा है।

2

आप उल और ली पैडिंग और मार्जिन को ओवरराइड कर सकते हैं।

इस सरल कोड:

.menu ul, .menu li{ 
    margin:0; 
    padding:0; 
} 
2

आप मार्जिन और मेनू की गद्दी से हटा सकते हैं

#menu *{ 
margin:0; 
padding:0; 
}