一、设置图片居中margin:0 auto;这个语法没有效果,对其父元素使用text-align:center;也是没有用的,因为图片太大了,解决方式如下:
如果图片的宽度大于了父元素的宽度,不可能使用margin:0 auto;或者text-align:center;来使图片居中
如果图片的宽度大于父元素的宽度,可以使用定位流,来使得图片居中,但是定位流的弊端也是比较明显
弊端:1.需要写三行代码;2.必须知道图片的宽度;
还有一种方法:margin:0 -100%; 注意点:父元素必须设置text-align:center;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="CSS/base.css"> <link rel="stylesheet" href="CSS/index.css"> </head> <body> <!--顶部区域--> <div class="top"> <div class="top_in"> <div class="top_left"> <h1><a href="#" title="努比亚"></a></h1><!--a标签里面的title属性,就是用于当鼠标放到a标签上面的时候会显示的文字--> </div> <div class="top_right"> <ul class="top_nav"> <li><a href="#">首页</a></li> <li><a href="#">商城</a></li> <li><a href="#">产品</a></li> <li><a href="#">应用</a></li> <li><a href="#">服务</a></li> <li><a href="#">体验店</a></li> <li><a href="#">社区</a></li> </ul> <ul class="top_login"> <!--这里有一个注意点,我们想要使用的右浮动,所以三个li标签应该倒叙写,因为先写的先浮动哦--> <li><a href="#">注册</a></li> <li><a href="#">登录</a></li> <li><a href="#"></a></li> </ul> </div> </div> </div> <!--广告区域--> <div class="banner"> <div class="nav_out"> <div class="nav"> <ul> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> </ul> </div> </div> <div class="figure"> <img src="image/banner.png" alt=""> </div> <div class="video"></div> </div> <!--内容区域--> <div class="content"></div> <!--底部区域--> <div class="footer"></div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="CSS/base.css"> <link rel="stylesheet" href="CSS/index.css"> </head> <body> <!--顶部区域--> <div class="top"> <div class="top_in"> <div class="top_left"> <h1><a href="#" title="努比亚"></a></h1><!--a标签里面的title属性,就是用于当鼠标放到a标签上面的时候会显示的文字--> </div> <div class="top_right"> <ul class="top_nav"> <li><a href="#">首页</a></li> <li><a href="#">商城</a></li> <li><a href="#">产品</a></li> <li><a href="#">应用</a></li> <li><a href="#">服务</a></li> <li><a href="#">体验店</a></li> <li><a href="#">社区</a></li> </ul> <ul class="top_login"> <!--这里有一个注意点,我们想要使用的右浮动,所以三个li标签应该倒叙写,因为先写的先浮动哦--> <li><a href="#">注册</a></li> <li><a href="#">登录</a></li> <li><a href="#"></a></li> </ul> </div> </div> </div> <!--广告区域--> <div class="banner"> <div class="nav_out"> <div class="nav"> <ul> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> <li><a href="#"><img src="image/nav-phone1.png" alt=""></a></li> </ul> </div> </div> <div class="figure"> <img src="image/banner.png" alt=""> </div> <div class="video"></div> </div> <!--内容区域--> <div class="content"></div> <!--底部区域--> <div class="footer"></div> </body> </html>
/*顶部区域*/
.top{
height:60px;
100%;/*也就是和父元素一样宽,这里使用百分比的形式,使得网页扩大减小都不会变形*/
background-color: black;
}
.top .top_in{
1200px;
margin:0 auto;
height:100%;
/*background-color: yellow;*/
}
.top .top_left{
float:left;
height:100%;
190px;
/*background-color: pink;*/
}
.top .top_left>h1{
100%;
height: 100%;
}
.top .top_left>h1>a{
display: inline-block;
100%;
height: 100%;
background:url("../image/nubia_logo.png");
background-size: 190px 60px;/*设置图片大小正好适配div块的大小*/
}
.top .top_right{
float:right;
height: 100%;
800px;
/*background-color: pink;*/
}
.top .top_nav{
float:left;
550px;
height: 100%;
/*background-color: skyblue;*/
}
.top .top_nav>li{
float:left;
list-style: none;
}
.top .top_nav>li>a{
font-size:25px;
font-weight: bold;/*给文字加粗*/
line-height:60px;
color:white;/*文字的颜色,直接是color*/
margin-left:20px;/*这是给文字添加空隙*/
text-decoration:none;/*去掉文字的下划线*/
}
/*.top .top_nav>li>a:hover{!*移动鼠标上去变化颜色*!*/
/*color:#e82c07;*/
/*}*/
.top .top_login{
float:right;
150px;
height: 100%;
/*background-color: skyblue;*/
}
.top .top_login>li{
list-style: none;
float:right;
margin-right:10px;
}
.top .top_login>li>a{
font-size:20px;
font-weight:bold;
line-height:60px;
color:white;
text-decoration:none;
}
.top ul>li>a:hover{/*移动鼠标上去变化颜色*/
color:#e82c07;
/*这里我们使用.top ,top_login>li>a:hover而使用了ul来替代top_login这个可以说是代码的重构,我们希望
li标签里的文字鼠标悬浮都变色,这样我们把父层级一改,可以省略代码,在后续编程中这些都是隐形的小技巧
*/
}
.top .top_login>li:nth-child(3){
30px;
height: 37px;
background:url("../image/nubia_person.png");
margin-top:10px;
}
/*广告区域*/
.banner{
height: 800px;
100%;
/*background-color: green;*/
}
/*内容区域*/
.content{
height: 1883px;
100%;
background-color: blue;
}
.banner .nav_out{
background-color: white;
height: 157px;
100%;
}
.banner .nav{
1200px;
height: 157px;
/*margin:0 auto;*//*这里我们想要居中这个模块,但是我们把定位流变成了绝对定位,所以就不管用了*/
/*background:pink;*/
position:absolute;/*只所所以改成绝对定位流,就是想要让这个盒子脱标,这样就可以让nav这个盒子悬浮在下个盒子上面*/
left:50%;/*通过这种方式来进行居中盒子,靠左边的一边,然后利用一半的宽度-600px进行回退*/
margin-left:-600px;
background:white;
}
.banner .nav>ul{
100%;
height:100%;
/*background:yellow;*/
padding-left: 75px;
padding-right:75px;
box-sizing:border-box;/*上面使用了内边距,这里是为了不让大盒子变形*/
}
.banner .nav>ul>li{
150px;
height:100%;
/*background:purple;*/
float:left;/*之所以变成浮动流,是因为li会独占一行,这样会占有七行,浮动流可以使它水平排版了*/
/*border:1px solid black;*/
box-sizing:border-box;/*为了就是不用因为边框而使得盒子变大变小*/
list-style: none;
}
.banner .nav>ul>li:hover{
border-bottom:3px red solid;
box-sizing:border-box;
}
.banner .nac>ul>li image{
150px;
height:157px;
}
.banner .figure{
100%;
height: 600px;
/*background:red;*/
overflow:hidden:/*隐藏图片的滚动条*/
}
.banner .figure>img{
/*margin:0 auto;这个语法没有效果,对其父元素使用text-align:center;也是没有用的,因为图片太大了,解决方式如下:*/
/*如果图片的宽度大于了父元素的宽度,不可能使用margin:0 auto;或者text-align:center;来使图片居中*/
/*如果图片的宽度大于父元素的宽度,可以使用定位流,来使得图片居中,但是定位流的弊端也是比较明显*/
/*弊端:1.需要写三行代码;2.必须知道图片的宽度;*/
/*还有一种方法:margin:0 -100%; 注意点:父元素必须设置text-align:center;*/
1200px;
position:absolute;
margin-left:570px;
/*如果图片太长而多了一个滚动条,那么可以在父元素的CSS代码中添加overflow属性*/
}
.banner .video{
1200px;
height: 250px;
margin: 0 auto;
margin-top: 10px;
/*background:skyblue;*/
}
/*底部区域*/
.footer{
}
二、源码:
1.项目:Nubia
地址:
https://github.com/ruigege66/HTML_learning/tree/master/Nubia
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流,后台回复“礼包”获取Java大数据学习视频礼包