目录
未知高度元素垂直居中、垂直居中的实现方式
实现图片垂直居中![](https://i-blog.csdnimg.cn/blog_migrate/4880a06aeb4039ab2d866f7af51ca395.png)
文本元素居中方法![](https://i-blog.csdnimg.cn/blog_migrate/c8eb43b8ce280cffbec723607d5abf96.png)
布局: 三栏布局(平均分布)的实现方法
用flex实现九宫格![](https://i-blog.csdnimg.cn/blog_migrate/71f8c280bf6d885529b3e32c6d7876df.png)
CSS实现一个等腰三角形
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>测试</title>
<style type="text/css">
div {
width:0px;height:0px;margin:100px auto;
border-left:80px solid transparent;
border-right:80px solid transparent;
border-bottom:138.56px solid #A962CE; /*--三角形的高--*/
}
</style>
</head>
<body>
<div>
</div>
</body>
</html>
CSS实现一个等边三角形
.triangle{
width: 0px;
height: 0px;
border-left: 10px solid transparent;
border-right: 10px solid transparent;;
border-top: 17.32px solid transparent;
border-bottom: 17.32px solid red;
}
CSS实现圆形
<div class="circle"></div>
<style>
.circle {
border-radius: 50%;
width: 80px;
height: 80px;
background: #666;
}
</style>
CSS实现扇形
1、利用border-radius,实现90度角的扇形:
原理:左上角是圆角,其余三个角都是直角:左上角的值为宽和高一样的值,其他三个角的值不变(等于0)。
<div class="sector"></div>
<style>
.sector{
border-radius:80px 0 0;
width: 80px;
height: 80px;
background: #666;
}</style>
-----------------------------------------------------------------------------
2、绘制任意角度的扇形
<div class="shanxing shanxing1">
<div class="sx1"></div>
<div class="sx2"></div>
</div>
<!--*绘制一个85度扇形*/--p>
<div class="shanxing shanxing2">
<div class="sx1"></div>
<div class="sx2"></div>
</div>
<!--*绘制一个向右扇形,90度扇形*-->
<div class="shanxing shanxing3">
<div class="sx1"></div>
<div class="sx2"></div>
</div>
<!--*绘制一个颜色扇形 */--p>
<div class="shanxing shanxing4">
<div class="sx1"></div>
<div class="sx2"></div>
</div>
<!--/*绘制一个不同颜色半圆夹角 */-->
<div class="shanxing shanxing5">
<div class="sx1"></div>
<div class="sx2"></div>
</div>
<style>
.shanxing{
position: relative;
width: 200px;
height: 200px;
border-radius: 100px;
background-color: yellow;
}
.sx1{
position: absolute;
width: 200px;
height: 200px;
transform: rotate(0deg);
clip: rect(0px,100px,200px,0px); /*这个clip属性用来绘制半圆,在clip的rect范围内的内容显示出来,使用clip属性,元素必须是absolute的 */
border-radius: 100px;
background-color: #f00;
/*-webkit-animation: an1 2s infinite linear; */
}
.sx2{
position: absolute;
width: 200px;
height: 200px;
transform: rotate(0deg);
clip: rect(0px,100px,200px,0px);
border-radius: 100px;
background-color: #f00;
/*-webkit-animation: an2 2s infinite linear;*/
}
/*绘制一个60度扇形*/
.shanxing1 .sx1{transform: rotate(-30deg);}
.shanxing1 .sx2{transform: rotate(-150deg);}
/*绘制一个85度扇形*/
.shanxing2 .sx1{transform: rotate(-45deg);}
.shanxing2 .sx2{transform: rotate(-140deg);}
/*绘制一个向右扇形,90度扇形*/
.shanxing3 .sx1{transform: rotate(45deg);}
.shanxing3 .sx2{transform: rotate(-45deg);}
/*绘制一个颜色扇形 */
.shanxing4 .sx1{transform: rotate(45deg);background-color: #fff;}
.shanxing4 .sx2{transform: rotate(-45deg);background-color: #fff;}
/*绘制一个不同颜色半圆夹角 */
.shanxing5 .sx1{transform: rotate(45deg);background-color: #f00;}
.shanxing5 .sx2{transform: rotate(-45deg);background-color: #0f0;
</style>
元素旋转45度
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Transform旋转</title>
<style>
div {
width: 300px;
margin: 150px auto;
background-color: yellow;
text-align: center;
-webkit-transform: rotate(45deg); /* for Chrome || Safari */
-moz-transform: rotate(45deg); /* for Firefox */
-ms-transform: rotate(45deg); /* for IE */
-o-transform: rotate(45deg); /* for Opera */
}
</style>
</head>
<body>
<div>黄色div</div>
</body>
</html>
画 0.5px 的直线
/*1、使用scale缩放*/
<style>
.hr.scale-half {
height: 1px;
transform: scaleY(0.5);
transform-origin: 50% 100%; //防止Chrome、Safari中线变虚
}
</style>
<p>1px + scaleY(0.5)</p>
<div class="hr scale-half"></div>
---------------------------------------------------------
/*2、线性渐变linear-gradient*/
<style>
.hr.gradient {
height: 1px;
background: linear-gradient(0deg, #fff, #000);
}
</style>
<p>linear-gradient(0deg, #fff, #000)</p>
<div class="hr gradient"></div>
/*inear-gradient(0deg, #fff, #000)的意思是:渐变的角度从下往上,从白色#fff渐变到黑色#000,而且是线性的,在高清屏上,1px的逻辑像素代表的物理(设备)像素有2px,由于是线性渐变,所以第1个px只能是#fff,而剩下的那个像素只能是#000,这样就达到了画一半的目的。*/
---------------------------------------------------------
/*3、boxshadow*/
<style>
.hr.boxshadow {
height: 1px;
background: none;
box-shadow: 0 0.5px 0 #000;
}
</style>
<p>box-shadow: 0 0.5px 0 #000</p>
<div class="hr boxshadow"></div>
---------------------------------------------------------
/*4、viewport*/
<meta name="viewport" content="width=device-width,initial-sacle=0.5">
/*其中width=device-width表示将viewport视窗的宽度调整为设备的宽度,这个宽度通常是指物理上宽度。默认的缩放比例为1时,如iphone 6竖屏的宽度为750px,它的dpr=2,用2px表示1px,这样设置之后viewport的宽度就变成375px。但是我们可以改成0.5,viewport的宽度就是原本的750px,所以1个px还是1px,正常画就行,但这样也意味着UI需要按2倍图的出,整体面面的单位都会放大一倍。*/
css 切换主题
1、主题层:这应该是实现主题功能的一种最常用的手段了。首先,我们的站点会有一个最初的基础样式(或者叫默认样式);然后通过添加一些后续的额外的CSS来覆盖与重新定义部分样式。
2、 有状态的主题:该方式可以实现基于条件选择不同的主题皮肤,并允许用户在客户端随时切换主题。非常适合需要客户端样式切换功能,或者需要对站点某一部分(区域)进行独立样式设置的场景。
3、配置主题:这种方式其实是在开发侧来实现主题样式的区分与切换的。基于不同的配置,配合一些开发的自动化工具,我们可以在开发时期根据配置文件,编译生成不同主题的 CSS 文件。它一般会结合使用一些 CSS 预处理器,可以对不同的 UI 元素进行主题分离,并且向客户端直接提供主题样式下最终的 CSS。
4、主题调色板:这种方式有些类似于我们绘图时,预设了一个调色板(palette),然后使用的颜色都从其中取出一样。在实现主题功能时,我们也会有一个类似的“调色板”,其中定义了主题所需要的各种属性值,之后再将这些信息注入到项目中。当你经常需要为客户端提供完全的定制化主题,并且经常希望更新或添加主题时,这种模式会是一个不错的选择。
5、 用户定制化:这种模式一般会提供一个个性化配置与管理界面,让用户能自己定义页面的展示样式。“用户定制化”在社交媒体产品、SaaS 平台或者是 Brandable Software 中最为常见。
设置斑马线表格(纯css)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>斑马线表格</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
/*清处浏览器默认设置*/
}
table{
/*表格的外边距和大小*/
margin: 10px 0 0 0;
width: 100%;
border-spacing: 0;
border-collapse: collapse;
/*collapse 表格单元格边框合并
border-spacing 表格单元格间距为零
*/
}
caption{
font: 30px "楷体";
padding: 5px;
/*表格标题*/
}
td{
width: 32%;
height: 50px;
/*单元格大小*/
}
tbody td{
border: 1px solid;
/*表格主体的边框*/
}
thead{
background-color: #A2A5A7;
/*表格头部*/
}
tr:hover{
background-color: #66D9EF;
cursor: pointer;
/*鼠标悬停在表格上时,表格的背景和鼠标的形状*/
}
table tbody tr:nth-child(even){
background-color: #8F908A;
box-shadow: inset 0 5px rgba(255,255,255,0.5);
/*even为偶数行 odd为奇数行
设置表格的主体部分偶数行的样式
shadow 阴影 inset将外部阴影改为内部阴影
*/
}
thead tr th:first-child
{
/*表头部分th 第一个th左上角设置圆角*/
border-radius: 15px 0 0 0;
}
thead tr td:last-child{
/*最后一个单元格右上角设置圆角*/
border-radius: 0 15px 0 0;
}
</style>
</head>
<body>
<table>
<caption>斑马线表格</caption>
<thead>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
<tfoot>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tfoot>
</table>
</body>
</html>