目录
布局
1盒子布局
盒子布局是常用的一种布局方式,padding和margin用于定义内边距和外边距,在其后加上right等方向可以单独定义某一方向的边距。border则常在定义盒子布局时用于查看边界,且在将边界定义好之后,直接将边界重新定义为白色能避免许多格式问题。 边框border有5种属性:none(无边框),hidden(无边框,应用于表时可解决边框冲突), dotted(定义点状边框),dashed.(定义虚线),soild(定义实线,常用).
2元素布局
在元素中,块级元素也能用于布局,如div,p,hn,hr等,因为块级元素独占一行的特点,这些标签都可以通过设置宽度和高度来布局。但更多时候我们还是使用css来布局。 而行内元素也可以通过display来转换为块级元素,从而实现布局。display有三种取值:none(此元素不会被显示),block(转为块级元素),inline(转为行内元素)。 css中还有两种隐藏元素的方式:1.display:none;2.width:0;height:0;
<!DOCTYPE html>
<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>布局2</title>
<style>
div{
width: 100px;
height: 100px;
border: 1px solid black;
display: inline;
}
a{
width: 100px;
height: 100px;
border: 1px solid black;
display: block;
}
.one{
width: 100px;
height: 100px;
background-color: red;
display: none;
/* width: 0;
height: 0; */
}
</style>
</head>
<body>
<div class="one">1div</div>
<div>2div</div>
<div>3div</div>
<a href="#">1a</a>
<a href="#">2a</a>
<a href="#">3a</a>
</body>
</html>
3浮动布局
通过float属性去设置浮动,取值只有left(左浮),none(不浮动),right(有浮动),但float设置的浮动一般会对后面使用的元素造成一定影响,在后面的元素应添加clear属性来消除float的影响,clear属性有四种取值:none(允许两边都可以浮动),left(禁止左浮动),right(禁止右浮动),both(禁止两侧浮动)。
<!DOCTYPE html>
<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>
.box1{
width: 200px;
height: 200px;
border: 1px solid black;
background-color: red;
float: left;
}
.box2{
width: 200px;
height: 200px;
border: 1px solid black;
background-color: blue;
clear: both;
}
.box3{
width: 200px;
height: 200px;
border: 1px solid black;
background-color: green;
float: right;
}
</style>
</head>
<body>
<div class="box1">第一个</div>
<div class="box2">第二个</div>
<div class="box3">第三个</div>
</body>
</html>
4定位布局
使用position属性进行对象的定位,有三种取值ststic(默认定位),absolute,relative。 absolute:绝对定位,相较于父级定位,如下代码就是相对于main属性的div标签进行定位,如果没有父级则父级默认为body。(具体定位在css中使用left,top,right,bottom设置,relative与此相同)
<div class="main">
<div class="absolute">定位布局<\div>
<\div>
relative:相对定位,相较于自身进行定位,在上面代码在就是相对于absolute属性的div标签进行定位。
5其他属性布局
overflow属性用于管理有对象内容超出指定的高度或宽度的情况。有以下四种属性:visible(默认值),auto(如果裁剪内容则显示滚动条),hidden(仅裁剪内容),scroll(裁剪内容并显示滚动条)。 hidden可用于隐藏元素(overflow:hidden;)。
zoom属性用于设置检索对象(如图片)的缩放百分比,有normal(默认值),number(百分比取值)两种取值。
6弹性盒子css3
弹性盒子由弹性容器(flexible或者flexbox)和弹性元素(flex-item)组成,可以更轻松地设计灵活的响应式布局结构,而无需使用浮动或定位。设置弹性容器是通过display属性设置如display:flex或display:inline-flex。
flex-direction
有四种取值:row(作为一行排列),row- reverse(作为一行排列但反向),column(作为一列排列),column-reverse(作为一列排列但反向)。
flex-wrap
有三种取值:nowrap(弹性项目不换行),wrap(弹性项目换行),wrap-reverse(弹性项目换行但反向)。
flex-flow
由于同时设置flex-direction和flex-wrap。
align-items
有五种取值:stretch(拉伸弹性项目以适合容器),center(项目居中于容器),flex-start(项目位于容器的开头),flex-end(项目位于容器的末尾),baseline(项目被定位到容器的基线)。
justify-content
有五种取值:flex-start(项目位于容器的开头),flex-end(项目位于容器的末尾),center(项目居中于容器),space-between(项目在行与行之间留有间隔),space-around(项目在行之前、行之间和行之后留有空间)。
align-content
有五种取值:stretch(拉伸弹性项目以适合容器),center(项目居中于容器),flex-start(项目位于容器的开头),flex-end(项目位于容器的末尾),space-between(项目在行与行之间留有间隔),space-around(项目在行之前、行之间和行之后留有空间)。