如何将一个元素定位在父元素 div 的右侧?
How to position one element at the right side of the parent div?
我正在为我的网站制作一个导航栏。
导航的最后一个元素应该在父元素 div 的右侧。 (这是登录按钮)。
但是正如您所看到的,登录按钮在正文中下沉了一点。它应该与其他按钮在同一行。我尝试在父级 div (navUl) 上执行 position relative
,并在元素中执行 position absolute
+ right:0
。我也尝试在元素上浮动,但它们都给了我相同的结果。
到目前为止我的代码:
html
<body>
<div class="header">
<div class="nav">
<img class="logo" src="images/WEBSHOPlogo.png">
<div class="lining">
<ul class="navUl">
<a href="index.html"><li class="currentNavLiHome"> <img class="homeButton" src="images/home-icon.png" alt="home"></li></a>
<a href="games.html"> <li class="navLi">producten</li></a>
<a href="info.html"> <li class="navLi">informatie</li></a>
<a href="admin.html"><li class="navLiLogin"> <img class="adminButton" src="images/icon-user.png" alt="admin"></li></a>
</ul>
</div>
</div>
</div>
</body>
css
body {
margin: 0px;
}
.header {
background-color: #594f4f;
}
.nav {
height: 170px;
width: 1100px;
margin-left: auto;
margin-right: auto;
}
.logo {
width: 300px;
margin-top: 50px;
}
.lining {
}
.navUl {
margin: 0px;
padding: 0px;
margin-top: 61px;
position: relative;
}
.navLi {
padding-top: 10px;
padding-bottom: 1px;
padding-left: 25px;
padding-right: 25px;
margin-left: 10px;
margin-right: 10px;
font-size: 1em;
text-transform: uppercase;
color: #594f4f;
display: inline;
background-color: #45ada8;
font-family:sans-serif;
clear: both;
}
.currentNavLiHome {
padding-top: 10px;
padding-bottom: 2px;
padding-left: 15px;
padding-right: 15px;
background-color: white;
margin-right: 5px;
display: inline;
clear: both;
}
.homeButton{
width: 20px;
}
.adminButton{
width: 20px;
}
.navLiLogin {
padding-top: 10px;
padding-bottom: 2px;
padding-left: 15px;
padding-right: 15px;
background-color: white;
display: inline;
float: right;
}
.navUl a {
list-style-type: none;
text-decoration: none;
}
.loginPosition {
}
感谢阅读。
尝试在 CSS 代码中使用 float:right;
。
另外我认为这将是一个很好的解决方案,如果你给包含链接(你可以创建它)的 div 宽度为 90%,并给包含登录名的 div 宽度为 10%例如。
没有工作有点困难fiddle,但试一试。
更新 HTML 以将锚标记放入 <li>
中,因为这是更好的语法:
HTML:
<body>
<div class="header">
<div class="nav">
<img class="logo" src="images/WEBSHOPlogo.png">
<div class="lining">
<ul class="navUl">
<li class="currentNavLiHome"><a href="index.html"><img class="homeButton" src="images/home-icon.png" alt="home"></a></li>
<li class="navLi"><a href="games.html"> producten</a></li>
<li class="navLi"><a href="info.html"> informatie</a></li>
<li class="navLiLogin"><a href="admin.html"><img class="adminButton" src="images/icon-user.png" alt="admin"></a></li>
</ul>
</div>
</div>
</div>
</body>
已更新 CSS。基本上我们浮动 <ul>
并给它一个 100% 的宽度,然后将 <li>
浮动到左边,除了将 li:last-child
浮动到右边。此外,从 <li>
中删除 clear:both
以便它们保持内联。
CSS:
.nav ul {
float: left;
width: 100%;
}
.nav ul li {
float: left;
}
.nav ul li:last-child {
float: right;
}
.navLi {
padding-top: 10px;
padding-bottom: 1px;
padding-left: 25px;
padding-right: 25px;
margin-left: 10px;
margin-right: 10px;
font-size: 1em;
text-transform: uppercase;
color: #594f4f;
display: inline;
background-color: #45ada8;
font-family:sans-serif;
}
.currentNavLiHome {
padding-top: 10px;
padding-bottom: 2px;
padding-left: 15px;
padding-right: 15px;
background-color: white;
margin-right: 5px;
display: inline;
}
<body>
<div class="header">
<div class="nav">
<img class="logo" src="images/WEBSHOPlogo.png">
<div class="lining" class="login" <!-- give it width="90%" -->>
<ul class="navUl">
<a href="index.html"><li class="currentNavLiHome"> <img class="homeButton" src="images/home-icon.png" alt="home"></li></a>
<a href="games.html"> <li class="navLi">producten</li></a>
<a href="info.html"> <li class="navLi">informatie</li></a></ul>
<div class="login" <!-- give it width="10%" --> ><a href="admin.html"> <img class="adminButton" src="images/icon-user.png" alt="admin"></li></a></div>
</div>
</div>
</div>
</body>
我正在为我的网站制作一个导航栏。 导航的最后一个元素应该在父元素 div 的右侧。 (这是登录按钮)。
但是正如您所看到的,登录按钮在正文中下沉了一点。它应该与其他按钮在同一行。我尝试在父级 div (navUl) 上执行 position relative
,并在元素中执行 position absolute
+ right:0
。我也尝试在元素上浮动,但它们都给了我相同的结果。
到目前为止我的代码:
html
<body>
<div class="header">
<div class="nav">
<img class="logo" src="images/WEBSHOPlogo.png">
<div class="lining">
<ul class="navUl">
<a href="index.html"><li class="currentNavLiHome"> <img class="homeButton" src="images/home-icon.png" alt="home"></li></a>
<a href="games.html"> <li class="navLi">producten</li></a>
<a href="info.html"> <li class="navLi">informatie</li></a>
<a href="admin.html"><li class="navLiLogin"> <img class="adminButton" src="images/icon-user.png" alt="admin"></li></a>
</ul>
</div>
</div>
</div>
</body>
css
body {
margin: 0px;
}
.header {
background-color: #594f4f;
}
.nav {
height: 170px;
width: 1100px;
margin-left: auto;
margin-right: auto;
}
.logo {
width: 300px;
margin-top: 50px;
}
.lining {
}
.navUl {
margin: 0px;
padding: 0px;
margin-top: 61px;
position: relative;
}
.navLi {
padding-top: 10px;
padding-bottom: 1px;
padding-left: 25px;
padding-right: 25px;
margin-left: 10px;
margin-right: 10px;
font-size: 1em;
text-transform: uppercase;
color: #594f4f;
display: inline;
background-color: #45ada8;
font-family:sans-serif;
clear: both;
}
.currentNavLiHome {
padding-top: 10px;
padding-bottom: 2px;
padding-left: 15px;
padding-right: 15px;
background-color: white;
margin-right: 5px;
display: inline;
clear: both;
}
.homeButton{
width: 20px;
}
.adminButton{
width: 20px;
}
.navLiLogin {
padding-top: 10px;
padding-bottom: 2px;
padding-left: 15px;
padding-right: 15px;
background-color: white;
display: inline;
float: right;
}
.navUl a {
list-style-type: none;
text-decoration: none;
}
.loginPosition {
}
感谢阅读。
尝试在 CSS 代码中使用 float:right;
。
另外我认为这将是一个很好的解决方案,如果你给包含链接(你可以创建它)的 div 宽度为 90%,并给包含登录名的 div 宽度为 10%例如。
没有工作有点困难fiddle,但试一试。
更新 HTML 以将锚标记放入 <li>
中,因为这是更好的语法:
HTML:
<body>
<div class="header">
<div class="nav">
<img class="logo" src="images/WEBSHOPlogo.png">
<div class="lining">
<ul class="navUl">
<li class="currentNavLiHome"><a href="index.html"><img class="homeButton" src="images/home-icon.png" alt="home"></a></li>
<li class="navLi"><a href="games.html"> producten</a></li>
<li class="navLi"><a href="info.html"> informatie</a></li>
<li class="navLiLogin"><a href="admin.html"><img class="adminButton" src="images/icon-user.png" alt="admin"></a></li>
</ul>
</div>
</div>
</div>
</body>
已更新 CSS。基本上我们浮动 <ul>
并给它一个 100% 的宽度,然后将 <li>
浮动到左边,除了将 li:last-child
浮动到右边。此外,从 <li>
中删除 clear:both
以便它们保持内联。
CSS:
.nav ul {
float: left;
width: 100%;
}
.nav ul li {
float: left;
}
.nav ul li:last-child {
float: right;
}
.navLi {
padding-top: 10px;
padding-bottom: 1px;
padding-left: 25px;
padding-right: 25px;
margin-left: 10px;
margin-right: 10px;
font-size: 1em;
text-transform: uppercase;
color: #594f4f;
display: inline;
background-color: #45ada8;
font-family:sans-serif;
}
.currentNavLiHome {
padding-top: 10px;
padding-bottom: 2px;
padding-left: 15px;
padding-right: 15px;
background-color: white;
margin-right: 5px;
display: inline;
}
<body>
<div class="header">
<div class="nav">
<img class="logo" src="images/WEBSHOPlogo.png">
<div class="lining" class="login" <!-- give it width="90%" -->>
<ul class="navUl">
<a href="index.html"><li class="currentNavLiHome"> <img class="homeButton" src="images/home-icon.png" alt="home"></li></a>
<a href="games.html"> <li class="navLi">producten</li></a>
<a href="info.html"> <li class="navLi">informatie</li></a></ul>
<div class="login" <!-- give it width="10%" --> ><a href="admin.html"> <img class="adminButton" src="images/icon-user.png" alt="admin"></li></a></div>
</div>
</div>
</div>
</body>