2018-09-19 day23-css布局
2018-09-19 本文已影响0人
rzlong
标准流和display
<!--
1.标准流:浏览器对标签默认的布局方式就是标准流
2.标准流布局原则:
块级: 块级标签一个占一行(不管标签的宽度是否是父标签的宽度)。
默认宽度是浏览器的宽度,默认的高度是内容的高度。
直接设置宽、高有效
行内块标签:
多个行内块可以一行显示
默认的宽、高是内容的宽、高
行内块标签直接设置宽、高有效
行内标签:
多个行内可以在一行显示
默认的宽、高是内容的宽、高
直接设置宽、高无效
3.display属性:转换标签的性质
block:块级
inline:行内
inline-block:行内块
注意:行内块标签和其他标签之间默认有间隙,而且这个间隙无法消除
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
a{
width: 100px;
height: 50px;
font-size: 20px;
}
.div_head{
height: 200px;
background-color: #7FFF00;
}
.div_body{
display: inline-block;
background-color: #5F9EA0;
width: 30%;height: 300px;
}
.div_body2{
display: inline-block;
background-color: #8B008B;
width: 38%;
height: 300px;
}
.div_body3{
display: inline-block;
background-color: #5F9EA0;
width: 30%;
height: 300px;
}
</style>
</head>
<body>
<div style="background-color: #8B008B;width:1000px; height:200px;">
<ul>
<li><a href="">提莫</a></li>
<li><a href="">小炮</a></li>
<li><a href="">小法</a></li>
</ul>
</div>
<div class="div_head">
</div>
<div class="div_body">
</div>
<div class="div_body2">
</div>
<div class="div_body3">
</div>
</body>
</html>
效果:
浮动
<!--
通过给float属性赋值为left或right让标签浮动,浮动会让标签脱流。
浮动的目的就是让垂直显示的可以水平显示(针对块)
2.浮动的效果
a.所有的标签浮动后,一行可以显示多个;默认的宽、高是内容的大小,可以设置宽度和高度。
b.一行显示不了的时候才会自动换行
3.注意事项
a.如果同一级的标签,后面的需要浮动,前面也要浮动
b.浮动的标签不占池底,只占水面的位置,不浮动的不动
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.div_body{
float:left;
width:100px;
height: 50px;
}
.a_float{
float:left;
width: 200px;
height: 100px;
}
</style>
</head>
<body>
<div class="div_body" style="background-color: blanchedalmond;"></div>
<div class="div_body" style="background-color: aqua;"></div>
<a href="" class="a_float" style="background-color: #8B008B;">百度一下</a>
<a href="" class="a_float" style="background-color: darkblue;">Rng S8冠军</a>
</body>
</html>
效果:
浮动(文字环绕)
<!--
文字环绕效果
让被环绕的对象浮动,文字不浮动。
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div style="width: 300px;">
<img style="float: left;" src="img/logo-jd.png" />
<p>京东(JD.com)是中国一家自营式B2C购物网站,创始人刘强东担任京东集团CEO。
旗下设有京东商城、京东金融、拍拍网、京东智能、O2O及海外事业部。2013年正式获得虚拟运营商牌照。
2014年5月,在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD)</p>
</div>
</body>
</html>
清除浮动
<!--
清除浮动:清除浮动不是将标签的浮动去掉,而是清除因为浮动产生的高度塌陷的问题。
高度塌陷:父标签不浮动,子标签浮动,并且不设置父标签的高度,就会产生高度塌陷的问题(对父标签)
方案1:添加空盒子,在高度塌陷的标签的后面添加一个空的div,并设置样式clear:both
方案2:对父标签设置样式 overflow:hidden
方案3:万能清除法
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
/*方案2*/
/*#father{
overflow: hidden;
}*/
/*方案3*/
#father:after{
display:block;
clear:both;
content:'';
visibility:hidden;
height:0;
}
#father{
zoom:1;
}
</style>
</head>
<body>
<div style="height:200px;width: 100%;background-color: #8B008B;"></div>
<div id="father" style="background-color: #7FFF00;">
<div style="height:100px;width: 30%;float: left;background-color: aqua;"></div>
<div style="height:200px;width: 40%;float: right;background-color: brown;"></div>
<div style="height:250px;width: 50%;float: left;background-color: burlywood;"></div>
<!--方案1:添加空盒子-->
<!--<div id="" style="clear:both;"></div>-->
</div>
</body>
</html>
效果:
定位position
<!--
css中可以通过left、right、bottom、top属性来说设置标签的上下左右的距离(但是默认情况下这些值不是都有效的)
如果想要让定位属性有效,通过position属性来设置参考对象。
1.position
initial:默认值,没有相对定位
absolute:相对于最近的一个非static/initial的父标签,若没找到,就相对于body标签定位
relative:相对于自己在标准流中位置来定位。(当标签本身不需要去定位,只是想让自己的字标签可以相对本身来定位的时候使用)
fixed:相对于浏览器定位
sticky:当网页的内容不滚动(超过一个屏)的时候,按照标准流定位。超过了就相对浏览器定位。
2.注意: 如果想要设置right值时,要保证相对标签的宽度是确定的,同理,想要设置bottom值要保证相对对象的高度是确定的。
3.技巧:当某个方向的定位无效的时候,可尝试让标签浮动再定位。
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#div2{
top:50px;
left:100px;
position: absolute;
}
#div1{
position: absolute;
top: 300px;
}
</style>
</head>
<body>
<!--
作者:offline
时间:2018-09-19
描述:absolute
-->
<!--<div id="div1" style="background-color: #8B008B;width: 800px;height: 480px;">
<div id="div2" style="background-color: brown;width: 300px;height:200px;"></div>
</div>-->
<!--
作者:offline
时间:2018-09-19
描述:relative
-->
<!--<div style="background-color: darkblue;height: 100px;">
</div>
<div style="background-color: darkgoldenrod;height:100px;width: 200px;position: relative;top: 100px;">
<div style="background-color: darkgreen;height:80px;width: 180px;position: absolute;left: 200px;top: 100px;"></div>
</div>-->
<!--
作者:offline
时间:2018-09-19
描述:fixed
-->
<div style="height: 1000px;background-color: cadetblue;"></div>
<div style="background-color: blueviolet;position: fixed;right: 10px;bottom: 50px;">
<a href="#" style="display: inline-block;">回到顶部</a>
</div>
<!--
作者:offline
时间:2018-09-19
描述:sticky
-->
<!--<div style="height: 100px;background-color: cadetblue;"></div>
<div style="background-color: blueviolet;position: sticky;right: 10px;bottom: 50px;">
<a href="#" style="display: inline-block;">回到顶部</a>
</div>-->
</body>
</html>
效果:
盒子模型
<!--
html中所有可见的标签都是一个盒子模型。包含长和宽决定内容的大小、padding、border、margin四个部分
其中内容、padding、border是可见的,margin不可见。
1.内容: 设置width和height影响的就是内容部分的大小。添加子标签、添加内容
2.padding: 在内容的外围, 可见部分,如果标签有背景颜色,那么这个部分的颜色和内容一致
3.border: 边框, border是在padding的外围,如果没有padding就在内容的外围,可见部分。可以设置颜色和大小。
4.margin:不可见部分,在border的外围,可用于移动整个块
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
div{
background-color: aqua;
/*content*/
width: 100px;
height: 80px;
/*padding*/
/*padding: 20px 20px 20px 40px;*/ /*上右下左*/
/*padding: 30px;*/ /*所有方向*/
padding-top: 40px;
padding-left: 40px;
/*border:宽度 样式 颜色*/
border: 10px dashed #7FFF00 ;
border-left:10px solid #8B008B;/*设置左边*/
}
</style>
</head>
<body>
<input type="text" name=""/>
<div>
content
</div>
</body>
</html>
其他属性
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.p1{
font-family: wst_fren ;
font-size: 20px;
font-weight: 900; /*字体加粗程度*/
font-style: initial;
background-color: chocolate;
height: 100px;
line-height: 100px; /*若只对一行文字垂直居中,可以设置 line-height和height一样*/
text-align: center; /*水平居中*/
}
.a1{
text-decoration: none;
/*
none:去下划线
underline:有下划线
overline: 上划线
line-through:添加下划线
*/
}
.p2{
text-indent: 2em; /*首行缩进2字符*/
}
.p3{
letter-spacing: 5px;/*字间距*/
}
.ul1{
list-style-type: devanagari;
}
/*设置背景图片*/
.pic{
width: 300px;
height:150px;
background: url(img/logo-jd.png) no-repeat center center yellow;
border-radius: 100px 100px 30px 30px; /*设置圆角*/
}
}
</style>
</head>
<body>
<p class="p1"> everything is about sex, except sex, sex is about power</p>
<a href="#" class="a1">please choose one</a>
<p class="p2">everything is about sex, except sex, sex is about power</p>
<p class="p3">everything is about sex, except sex, sex is about power</p>
<ul class="ul1">
<li>everything is about sex</li>
<li>everything is about sex</li>
<li>everything is about sex</li>
</ul>
<div class="pic"></div>
</body>
</html>
效果: