css常见布局方式

1.盒子布局

 每个HTML元素都相当于一个矩形的“盒子”。

上图为CSS的盒子模型,由里到外由代码分别表示为;

content(内容)

padding(内边距)

border(边框)

margin(外边距)

如要对盒子边框进行编辑可参考以下代码:

边框粗细:border-width

边框样式:border-style

边框颜色:border-color

如要对盒子内(外)边距进行编辑可参考以下代码:

padding-top:设置上边的边距

padding-left:设置左边的边距

padding-right:设置右边的边距

:padding-bottom:设置下边的边距

<!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>
        div{
            width: 100px;
            height: 100px;
            background-color: aqua;
            border-bottom: 1px solid black;
            padding: 20px;
        }
    </style>
</head>
<body>
    <div>这是一个6</div>
</body>
</html>

2.浮动布局

利用float属性来使元素进行浮动。

float-left:元素左浮动

float-right:元素右浮动

float-none:元素不浮动

<!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: aqua;
            float: left;
         }
         .box2{
            width: 200px;
            height: 200px;
            border: 1px solid black;
            background-color: green;
            float: left;
         }
         .box3{
            width: 200px;
            height: 200px;
            border: 1px solid black;
            background-color: red;
            float: left;
         }
    </style>
</head>
<body>
    <div class="box1">这是一个div</div>
    <div class="box2">这是二个div</div>
    <div class="box3">这是三个div</div>
</body>
</html>

3.定位布局

利用position设置元素的定位方式:

1.static:没有设置定位(默认位置)

2.absolute:将元素从文档流分离出来,通过:

absolute-left(左边)

absolute-right(右边)

absolute-top(上边)

absolute-bottom(下边)

四个代码来实现元素相较于父级元素的相对位置注:不存在父级时,body是父级。

3.relative:元素不从文档流中分离出来,通过:

relative-left()

relative-right()

relative-top()

relative-bottom()

四个代码来实现元素相较于自身相对位置。

<!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;
        /* position:absolute;
        top: 100px;
        left: 200px; */
        }
        .box2{
        width: 200px;
        height: 200px;
        border: 1px solid black;
        background-color: blue;
        position: relative;
        left: 200px;
        }
        .box3{
        width: 200px;
        height: 200px;
        border: 1px solid black;
        background-color:green;
        }
        </style>
        </head>
        <body>
        <div class="box1">这是第一个div</div>
        <div class="box2">这是第二个div</div>
        <div class="box3">这是第三个div</div>
        </body>
        </html>
<!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>
.main{
width: 300px;
height: 300px;
border: 1px solid black;
margin: 200px;
position: relative;
}
.box1{
width: 100px;
height: 100px;
border: 1px solid black;
background-color: red;
position:absolute;
top: 100px;
left: 200px;
}
.box2{
width: 100px;
height: 100px;
border: 1px solid black;
background-color: blue;
/* position: relative;
left: 200px; */
}
.box3{
width: 100px;
height: 100px;
border: 1px solid black;
background-color:green;
}
</style>
</head>
<body>
<div class="main">
<div class="box1">这是第一个div</div>
<div class="box2">这是第二个div</div>
<div class="box3">这是第三个div</div>
</div>
</body>
</html>

4.弹性盒子

(1)基本概念:

弹性盒子是由弹性容器(Flexible或Flexbox)或者弹性元素(Flex-item)组成。

通常利用display来设置属性——display:flex

注:一个弹性盒子可以包含多个弹性元素

<!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>
.flex-contain{
width: 400px;
height: 350px;
background-color: orange;
display: inline-flex;
}
.flex-item{
width: 100px;
height: 100px;
background-color: red;
border: 1px solid black;
}
</style>
</head>
<body>
<div class="flex-contain">
<div class="flex-item">flex item1</div>
<div class="flex-item">flex item2</div>
<div class="flex-item">flex item3</div>
</div>
</body>
</html>

(2)常见元素:

1.flex-direction——指的是弹性容器中子元素的排列方式

row,row-reverse,column,column-reverse来替换direction改变排列方式

<!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>
.flex-contain{
width: 400px;
height: 350px;
background-color: orange;
display: inline-flex;
flex-direction: column-reverse;
}
.flex-item{
width: 100px;
height: 100px;
background-color: red;
border: 1px solid black;
}
</style>
</head>
<body>
<div class="flex-contain">
<div class="flex-item">flex item1</div>
<div class="flex-item">flex item2</div>
<div class="flex-item">flex item3</div>
</div>
</body>
</html>

2.flex-wrap——指的是弹性容器中子元素超出父容器时是否换行

可用:

nowwrap——默认元素,规定弹性元素不换行

wrap——弹性元素在需要时会换行

wrap-reverse——会换行,但是是反方向

<!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>
.flex-contain{
width: 400px;
height: 350px;
background-color: orange;
display: inline-flex;
flex-wrap: wrap-reverse;
}
.flex-item{
width: 100px;
height: 100px;
background-color: red;
border: 1px solid black;
}
</style>
</head>
<body>
<div class="flex-contain">
<div class="flex-item">flex item1</div>
<div class="flex-item">flex item2</div>
<div class="flex-item">flex item3</div>
<div class="flex-item">flex item4</div>
<div class="flex-item">flex item5</div>
<div class="flex-item">flex item6</div>
<div class="flex-item">flex item7</div>
<div class="flex-item">flex item8</div>
<div class="flex-item">flex item9</div>
<div class="flex-item">flex item10</div>
<div class="flex-item">flex item11</div>
</div>
</body>
</html

3.flex-flow:flex-direction和flex-wrap的缩写;

4.align-items:设置弹性容器在侧轴(纵轴)的对齐方式;

5.justify-content:设置弹性容器在主轴(横轴)的对齐方式;

6.align-conten:修改了flex-flow的行为,类似于align-items,是对齐的弹性线。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值