2017-07-09 91 views
0

html/css新手在这里。如何在水平无序列表中居中列表项目?

我已经做HTML/CSS一些课程,现在我将试图复制一些网站我喜欢测试我的知识。现在我正在尽我所能让可汗学院的首页(https://www.khanacademy.org),但我一直在努力。

我有一个<ul>表示页面的顶部导航栏,现在我试图居中他们的标志(<div id="ka">即是导航栏的列表项内)的网页,但使用text-align: centermargin-left: auto; & margin-right: auto没有按”似乎什么都不做。

这里是我的代码:

body { 
 
    margin: 0; 
 
    padding: 0; 
 
    background-image: url("https://cdn.kastatic.org/images/homepage/mountains-simple.svg"); 
 
    background-repeat: no-repeat; 
 
    background-size: 157.75%; 
 
    background-position-x: 50.825%; 
 
} 
 

 
li { 
 
    display: inline-block; 
 
} 
 

 
.navbar { 
 
    overflow: hidden; 
 
    width: 100%; 
 
    height: 60px; 
 
    border-bottom-color: #68e2de; 
 
    border-bottom-width: 1px; 
 
    border-bottom-style: solid; 
 
} 
 

 
.navbar { 
 
    list-style: none; 
 
} 
 

 
.navbar-text { 
 
    color: white; 
 
    float: left; 
 
    font-weight: 400; 
 
    font-family: 'Montserrat', sans-serif; 
 
    font-weight: 500; 
 
    font-size: 17px; 
 
    padding: 13px 38px 0px 4px; 
 
    margin-left: -8px; 
 
} 
 

 
#ka { 
 
    display: inline-block; 
 
} 
 

 
#ka-logo { 
 
    float: left; 
 
    width: 24px; 
 
    margin-left: auto; 
 
    margin-right: auto; 
 
} 
 

 
#search-icon { 
 
    width: 32px; 
 
    margin-left: -44px; 
 
    margin-top: 8px; 
 
} 
 

 
#search-bar { 
 
    background-color: #47dcd6; 
 
    border-radius: 4px; 
 
    margin-left: 8px; 
 
    border: 1px solid #47dcd6; 
 
    padding: 12px 175px 14px 12px; 
 
} 
 

 
#expand-triangle { 
 
    font-size: 13px; 
 
    margin-left: 7px; 
 
    color: #85e8e3; 
 
} 
 

 
.bold-signika { 
 
    display: inline; 
 
    font-family: 'Signika', sans-serif; 
 
    font-size: 23px; 
 
    color: white; 
 
    font-weight: 600; 
 
} 
 

 
.signika { 
 
    display: inline; 
 
    font-family: 'Signika', sans-serif; 
 
    color: white; 
 
    font-size: 23px; 
 
} 
 

 
#sign { 
 
    float: right; 
 
    margin-right: 44px; 
 
}
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <link href="https://fonts.googleapis.com/css?family=Montserrat:400,500" rel="stylesheet"> 
 
    <link href="https://fonts.googleapis.com/css?family=Signika:400,600" rel="stylesheet"> 
 
    <link rel="stylesheet" type="text/css" href="main.css"> 
 
</head> 
 

 
<body> 
 
    <ul class="navbar"> 
 
    <li class="navbar-text">Subjects<span id="expand-triangle">▼</span></li> 
 
    <li id="search-bar" class="navbar-text">Search</li> 
 
    <li><img id="search-icon" src="search.png"></li> 
 
    <li> 
 
     <div id="ka"> 
 
     <img id="ka-logo" src="leaf-green.svg"> 
 
     <div class="bold-signika">KHAN</div> 
 
     <div class="signika">ACADEMY</div> 
 
     </div> 
 
    </li> 
 
    <li id="sign" class="navbar-text">New user/Sign up</li> 
 
    </ul> 
 
</body> 
 

 
</html>

我也似乎this question但什么建议没有为我工作。

我的问题是:我怎么中心徽标的div?

旁注:因为我是相当新的HTML可能有很多在上面的代码不好的做法。有关如何做更有效的事情的提示将受到高度赞赏。

+0

导览列UL有4个孩子的李。你想让他们中的一个居中?你确定中心?那么你打算如何展示其他孩子呢?您的新用户和搜索框位于右侧,而主题位于徽标左侧?你不是想平均分配你的孩子吗? – Taxellool

回答

1

这里是您的问题的解决方案。

在CSS中,柔性是非常有用的,一起来看看:

柔性引导https://css-tricks.com/snippets/css/a-guide-to-flexbox/

我的CSS

我已经使用flexbox居中verically的div并设置正确的div。

对于标志,我使用的first div与任务栏(non-clickable)的高度和宽度,并用中心(clickable)position absolute标识一个second

享受

body { 
 
    margin: 0; 
 
    padding: 0; 
 
    background-image: url("https://cdn.kastatic.org/images/homepage/mountains-simple.svg"); 
 
    background-repeat: no-repeat; 
 
    background-size: 157.75%; 
 
    background-position-x: 50.825%; 
 
} 
 

 
li { 
 
    display: inline-block; 
 
} 
 

 
.navbar { 
 
    overflow: hidden; 
 
    width: 100%; 
 
    height: 60px; 
 
    border-bottom-color: #68e2de; 
 
    border-bottom-width: 1px; 
 
    border-bottom-style: solid; 
 
    
 
    display: flex; 
 
    align-items:center; 
 
    position:absolute; 
 
} 
 

 
.navbar { 
 
    list-style: none; 
 
} 
 

 
.navbar-text { 
 
    color: white; 
 
    float: left; 
 
    font-family: 'Montserrat', sans-serif; 
 
    font-weight: 500; 
 
    font-size: 17px; 
 
    /**padding: 0 38px 0px 4px;**/ 
 
} 
 

 
.logo { 
 
    position:absolute; 
 
    height:100%; 
 
    top:0; 
 
    left:0; 
 
    width:100%; 
 
    display:flex; 
 
    justify-content:center; 
 
    align-items:center; 
 
    pointer-events:none; 
 
} 
 

 
.logo-container { 
 
    display:flex; 
 
    align-items:center; 
 
    pointer-events:all; 
 
} 
 

 
.logo-container .ka-logo { 
 
    width: 24px; 
 
} 
 

 
.left, .right { 
 
    display:flex; 
 
    align-items:center; 
 
} 
 

 
.left { 
 
    margin:0 10px; 
 
} 
 

 
.right { 
 
    justify-content:right; 
 
    margin:0 10px 0 auto; 
 
} 
 

 
#search-icon { 
 
    width: 32px; 
 
    margin-left: -44px; 
 
    margin-top: 8px; 
 
} 
 

 
#search-bar { 
 
    background-color: #47dcd6; 
 
    border-radius: 4px; 
 
    margin-left: 8px; 
 
    border: 1px solid #47dcd6; 
 
    padding: 12px 175px 14px 12px; 
 
} 
 

 
#expand-triangle { 
 
    font-size: 13px; 
 
    margin-left: 7px; 
 
    color: #85e8e3; 
 
} 
 

 
.bold-signika { 
 
    display: inline; 
 
    font-family: 'Signika', sans-serif; 
 
    font-size: 23px; 
 
    color: white; 
 
    font-weight: 600; 
 
} 
 

 
.signika { 
 
    display: inline; 
 
    font-family: 'Signika', sans-serif; 
 
    color: white; 
 
    font-size: 23px; 
 
}
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <link href="https://fonts.googleapis.com/css?family=Montserrat:400,500" rel="stylesheet"> 
 
    <link href="https://fonts.googleapis.com/css?family=Signika:400,600" rel="stylesheet"> 
 
    <link rel="stylesheet" type="text/css" href="main.css"> 
 
</head> 
 

 
<body> 
 
    <div class="navbar"> 
 
    <div class="left"> 
 
     <li class="navbar-text">Subjects<span id="expand-triangle">▼</span></li> 
 
     <li id="search-bar" class="navbar-text">Search</li> 
 
     <li><img id="search-icon" src="search.png"></li> 
 
    </div> 
 
    <div class="logo"> 
 
     <div class="logo-container"> 
 
      <img class="ka-logo" src="leaf-green.svg"> 
 
      <div class="bold-signika">KHAN</div> 
 
      <div class="signika">ACADEMY</div> 
 
     </div> 
 
    </div> 
 
    <div class="right"> 
 
     <li class="navbar-text">New user/Sign up</li> 
 
    </div> 
 
    </div> 
 

 

 
    <!--<ul class="navbar"> 
 
    <div class="left"> 
 
     <li class="navbar-text">Subjects<span id="expand-triangle">▼</span></li> 
 
     <li id="search-bar" class="navbar-text">Search</li> 
 
     <li><img id="search-icon" src="search.png"></li> 
 
    </div> 
 
    <div class="center"> 
 
     <li> 
 
     <div id="ka"> 
 
      <img id="ka-logo" src="leaf-green.svg"> 
 
      <div class="bold-signika">KHAN</div> 
 
      <div class="signika">ACADEMY</div> 
 
     </div> 
 
     </li> 
 
    </div> 
 
    <div class="right"> 
 
     <li id="sign" class="navbar-text">New user/Sign up</li> 
 
    </div> 
 
    </ul>--> 
 
</body> 
 

 
</html>