目录
一.按钮
- button标签, 默认为内联块, 去自带边框 border: 0;
- input标签, type="button"
- a/div/p等元素, 转换为内联块设置宽高实现按钮
标签组, 结合float浮动实现
实现按钮禁用效果, 可结合透明度opacity(值0-1)和鼠标样式 cursor: not-allowed;
<body>
<!-- 按钮 按钮组(结合浮动) -->
<!-- 方式1: 默认内联块 display: inlin-block; 去掉自带边框 可设置边框 border: 0; -->
<button>按钮1</button>
<!-- 方式2: 自带圆角(设置除宽高以外的属性时,圆角变直角) -->
<input type="button" value="按钮2">
<!-- 方式3: a链接/div/p等元素 变为内联块 设置宽高 -->
<a href="#">按钮3</a>
<!-- 图片按钮 -->
<input type="image" src="../practice/豆瓣/images/a.png">
</body>
<style type="text/css">
button{
width: 100px;
height: 50px;
background-color: rgb(240, 171, 171);
border: 0; /* 去掉button自带边框 */
/* 实现按钮禁用效果 结合透明度,以及鼠标样式 */
opacity: 0.5;
cursor: not-allowed; /*禁用*/
}
input{
width: 100px;
height: 50px;
background-color: skyblue;
border: 0;
}
a{
display: inline-block;
width: 100px;
height: 50px;
line-height: 50px;
text-align: center;
text-decoration: none;
background-color: rgb(151, 235, 183);
}
</style>
二.圆角
- border-radius 可同时设置四个角圆角效果,规则: 1个值四角相同, 2个值(左上和右下同)(右上和左下同)
- border-top-left-radius 左上角
- border-top-right-radius 右上角
- border-bottom-right-radius 右下角
- border-bottom-left-radius 左下角
<style>
div{
margin: 20px;
width: 200px;
height: 200px;
line-height: 200px;
text-align: center;
font-size: 30px;
background-color: rgb(246, 247, 180);
/* 圆角 相当于在四个角放置四分之一的圆,可用数字+px, 或 % 来控制圆半径大小 数字越大,圆角越大
设值规则: 1个值四角相同 2个值(左上和右下同)(右上和左下同) */
border-radius: 20%; /* 可以同时为元素的四个角设置圆角效果。 */
border-top-left-radius: 20px; /* 左上角设置圆角效果 */
border-top-right-radius: 40px; /* 右上角设置圆角效果 */
border-bottom-right-radius: 60px; /* 右下角设置圆角效果 */
border-bottom-left-radius: 80px; /* 左下角设置圆角效果 */
}
</style>
三.阴影
- 文本阴影 text-shadow: offset-x offset-y blur(模糊半径) color; 默认none(无阴影)
- 盒子阴影 box-shadow: h-shadow v-shadow blur spread(尺寸) color outset/inset(外/内部);
<style>
/* 阴影 */
/* 文本阴影 */
/* text-shadow: offset-x offset-y blur color; 默认none(无阴影)
offset-x / offset-y: 必填参数,阴影的水平/垂直偏移量,可以为负值
blur: 可选,设置模糊的半径,值越大,模糊越大,阴影的边缘越模糊,不允许使用负值;
color: 可选参数,设置阴影的颜色,默认为color属性值
可以同时设定多组阴影效果,按照定义顺序依次罗列(上右下左) */
text-shadow: 10px 5px 5px rebeccapurple;
text-shadow: 10px 5px 1px rgb(212, 182, 244),10px 5px 2px rgb(137, 70, 117),10px 5px 2px rgb(76, 188, 102), 1px 1px 6px rgb(238, 100, 100);
/* 盒子阴影 */
box-shadow: 20px 20px 2px 3px rgb(76, 188, 102) inset;
/* box-shadow: h-shadow v-shadow blur spread color inset;
h-shadow:必填参数,设置阴影水平方向的偏移量,可以为负值;
v-shadow:必填参数,设置阴影垂直方向的偏移量,可以为负值;
blur:可选参数,设置模糊的半径,值越大,模糊越大,阴影的边缘越模糊,不允许使用负值;
spread:可选参数,设置阴影的尺寸(外延);
color:可选参数,设置阴影的颜色;
inset:可选参数,将默认的外部阴影 (outset) 改为内部阴影。
*/
</style>
四.自适应
1.宽度自适应
- 块元素未设置宽,则为父盒子的宽度, 使用%时,为父盒子宽度的%
- 块元素使用绝对定位, 但未设置宽度, 此时盒子宽度由内容撑开内容
2.高度自适应
- 不设置高度或 hight: auto; 父元素高度为子元素撑开的高度
- 最小/大高度 min-height/ max-height IE6不兼容(使用_hight) 低版本中hight充当该属性
- 过滤器(兼容低版本浏览器)
过滤器( 兼容低版本浏览器 )
_ IE6中使用 _height
* IE6,IE7识别 *height
\0 IE8及以上版本识别,其他浏览器都不识别
\9 只有IE识别 height: 100px\9;
!important 最高权重 IE6不兼容
五.层级z-index
- 整数(可正可负), 默认为0 数越大,层级越高,显示在前面
- 用于设置了position: relative | absolute | fixed的元素或父元素设置了 display: flex属性的子元素中起作用,在其他元素中是不起作用的父子元素中, 父未设置z-index, 当子的z-index大于或等于0时, 子元素层级大于父元素
六.三栏布局
1.浮动实现
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
.left{
float: left;
width: 15%;
height: 100vh;
background-color: antiquewhite;
}
.right{
float: right;
width: 15%;
height: 100vh;
background-color: antiquewhite;
}
.center{
height: 100vh;
background-color: rgb(197, 197, 93);
}
.main::after{
content: '';
display: block;
height: 0;
clear: both;
visibility: hidden;
}
/* .left{
float: left;
width: 15%;
height: 100vh;
background-color: antiquewhite;
}
.right{
float: right;
width: 15%;
height: 100vh;
background-color: antiquewhite;
}
.center{
float: left;
width: 70%;
height: 100vh;
background-color: rgb(197, 197, 93);
} */
</style>
</head>
<body>
<div class="main">
<div class="left"></div>
<div class="right"></div>
<!-- 中间内容盒子需放到最后, 避免放在中间独占一行,导致.right右浮动受影响 -->
<div class="center"></div>
</div>
</body>
</html>
2.定位实现
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
/* 采用定位的方式实现三栏布局, 给中间的的盒子设置左和右的距离 */
.main{
position: relative;
}
.left{
position: absolute;
top: 0;
left: 0;
width: 15%;
height: 100vh;
background-color: rgb(240, 214, 214);
}
.right{
position: absolute;
top: 0;
right: 0;
width: 15%;
height: 100vh;
background-color: rgb(240, 214, 214);
}
.center{
position: absolute;
left: 15%;
right: 15%;
height: 100vh;
background-color: rgb(247, 200, 208);
}
</style>
</head>
<body>
<div class="main">
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>
</div>
</body>
</html>
3.表格布局实现
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
/* 表格布局 */
/* 左中右布局:
若实现一行排, 则每个盒子占一个单元格table-cell
需给父盒子加width,如果没有, 则宽高由子元素内容决定
盒子未给高度,则由内容撑开
*/
.main{
display: table;
width: 100%;
}
.left{
display: table-cell;
background-color: rgb(243, 203, 203);
}
.right{
display: table-cell;
background-color: rgb(244, 184, 184);
}
.center{
display: table-cell;
background-color: rgb(250, 218, 223);
}
/* 上中下布局
一竖列, 则每个盒子占一列table-row,
盒子宽高由内容撑开, 宽度为最长内容盒子的宽度
*/
.main1{
display: table;
width: 100%;
}
.left1{
display: table-row;
background-color: rgb(245, 144, 144);
}
.right1{
display: table-row;
background-color: rgb(249, 111, 111);
}
.center1{
display: table-row;
background-color: rgb(228, 149, 161);
}
</style>
</head>
<body>
<div class="main">
<div class="left">1111111111111111111111111111111</div>
<div class="center">1111111111111111111111111111</div>
<div class="right">111111111111111111</div>
</div>
<div class="main1">
<div class="left1">2222222222</div>
<div class="center1">2222222222222222222</div>
<div class="right1">222222222222222222222222222222222</div>
</div>
</body>
</html>
4.弹性布局(flex)实现
<style>
*{
margin: 0;
padding: 0;
}
.main{
display: flex;
width: 100%;
height: 100vh;
justify-content: center;
align-items: center;
}
.left{
width: 200px;
height: 100vh;
background-color: rgb(231, 216, 196);
}
.right{
width: 200px;
height: 100vh;
background-color: antiquewhite;
}
.center{
/* 剩余空间给中间部分 */
flex: 1;
height: 100vh;
background-color: rgb(238, 238, 167);
}
</style>
<body>
<div class="main">
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>
</div>
</body>
5.网格布局实现
<style>
*{
margin: 0;
padding: 0;
}
.main{
display: grid;
grid-template-columns: 200px 1fr 200px;
grid-template-rows: 100vh;
}
.left{
background-color: rgb(231, 216, 196);
}
.right{
background-color: antiquewhite;
}
.center{
background-color: rgb(238, 238, 167);
}
</style>
PreviousNotes: