一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情。
新浪导航栏实例
效果:
相关取值
分析
- 设置一个一个div盒子,给其设置高度和背景颜色以及上下边框等属性
- 盒子里面放置链接,给链接设置字体大小颜色,去掉链接下方横线,并设置内边距,还要将其转化为行内块元素来为其设置行高
- 最后设置链接伪类选择器,使得鼠标放到链接上时呈现橙色
代码实现
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>新浪导航</title>
<style>
.nav {
height: 41px;
background-color: #fcfcfc;
border-top: 3px solid #ff8500;
border-bottom: 1px solid #edeef0;
line-height: 41px;
}
.nav a {
display: inline-block;
height: 41px;
padding:0 20px;
font-size: 12px;
color:#4c4c4c;
text-decoration: none;
}
.nav a:hover {
background-color: #eee;
color:#ff8500;
}
</style>
</head>
<body>
<div class="nav">
<a href="#">设为首页</a>
<a href="#">手机新浪网</a>
<a href="#">移动客户端</a>
<a href="#">微博</a>
</div>
</body>
</html>
盒子模型外边距
margin属性用于设置外边距,即控制盒子与盒子之间的距离:
-
margin-left 左外边距 -
margin-right 右外边距 -
margin-top 上外边距 -
注意:margin的简写方式与padding一致margin-bottom 下外边距
外边距典型应用
外边距可以让块级盒子水平居中,但是必须满足两个条件:
-
盒子必须指定了宽度(width) -
盒子左右的外边距都设置为auto
常见的写法:
- margin-left:auto; margin-right:auto;
- margin:auto;上下左右同时设置为auto
- margin:0 auto; 上下设置为0,左右设置为auto 注意:以上方法是让块级元素水平居中,行内元素或者行内块元素水平居中给其父元素添加text-aligin:center即可
外边距合并
使用margin定义块元素的垂直外边距时,可能会出现外边距的合并
1. 相邻块元素垂直外边距合并
当上下相邻的两个块元素(兄弟关系)相遇时,如果上面的元素有下边距margin-bottom,下面的元素有上外边距 margin-top,则他们之间的垂直间距不是margin-bottom与margin-top之和。取两个值中的较大者这种现象被称 为相邻块元素垂直外边距的合并
2. 嵌套块元素垂直外边距的塌陷
对于两个嵌套关系(父子关系)的块元素,父元素有上外边距同时子元素也有上外边距,此时父元素会他先较大的 外边距
解决方案
可以为父元素定义上边框
可以为父元素定义上内边框
可以为父元素添加overfolw:hidden