css 无序列表在div中未一直向左对齐

vxf3dgd4  于 2023-01-27  发布在  其他
关注(0)|答案(8)|浏览(184)

我有一个无序的列表,我把它当作一个简单的导航栏,看起来像下面这样:

正如您所看到的,<li>元素并没有一直与包含它们的<div>的左侧对齐。我已经在包含<div>的中尝试了text-align: left;,但似乎没有效果。

#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;
    }
<div id="menu">                                                                         
        <div id="menutop">                                                                  
            <ul>                                                                            
                <li><a href="#">Home</a></li>                                               
                <li><a href="#">About</a></li>                                              
            </ul>                                                                           
        </div>

有什么想法吗?

9rnv2umw

9rnv2umw1#

默认情况下,ulli具有边距或填充,具体取决于浏览器。您需要在菜单中覆盖此默认样式:

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

观看here演示
注:默认情况下,jsfiddles会重置CSS,所以并不总是很适合测试这类问题。在查找这类bug时,请确保禁用“标准化CSS”。

xwmevbvl

xwmevbvl2#

设置填充,边距0px,

#menutop ul {
    padding: 0;
    margin: 0;
    list-style: none;
}

Demo
http://jsfiddle.net/tQb75/

4dc9hkyq

4dc9hkyq3#

你可以覆盖ul和li的填充和边距。
这个简单的代码:

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

guykilcj4#

请尝试使用**CSS Reset**。
最简单的形式是:

* { margin: 0; padding: 0; }
ar5n3qh5

ar5n3qh55#

您可以删除菜单的边距和填充

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

sshcrbum6#

<ul>元素左对齐,但是<li>元素将padding-left设置为10px,这就是第一个元素稍微靠右的原因。

yyyllmsg

yyyllmsg7#

我创建了一个文本左对齐的div,然后给这个div设置了- x auto。这样这个div就水平居中了。这个div里面的任何ul都自动左对齐并居中。我使用的是Bootstrap类。

<div class="text-left mx-auto"> 
  <ul> 
    <li></li>
  </ul>
</div>
vh0rcniy

vh0rcniy8#

我知道有一个公认的答案已经,但有人在那里引导一个更好的方法来做到这一点是扔这个李风格

text-align: start;

相关问题