Html Css 相干

单行居中多行居左布局

能够应用display: inline-block实现

<!-- html构造 --><div class='container'>  <div class='list'>    <div class='item'></div>    <div class='item'></div>    <div class='item'></div>    <div class='item'></div>    <div class='item'></div>    <div class='item'></div>    <div class='item'></div>    <div class='item'></div>  </div></div><!-- 款式 -->.container {  padding: 10px;  width: 600px;  text-align: center;  border: 1px solid #000;}.list {  display: inline-block;  text-align: left;}.item {  display: inline-block;  width: 80px;  border: 1px solid #f00;  height: 200px;}

如何实现垂直居中布局

同宽高+padding

.parent{  width: 100px;  height: 100px;  /*将padding设置,来挤出来居中的样子;然而要留神的是,此时的width和height要和子元素的大小一样,否则还是不居中*/  padding: 100px;  border: 1px solid;  margin: 100px auto;}.child{  width: 100px;  height: 100px;  background: pink;  line-height: 100px;  text-align: center;}

定位+定宽+定高,应用absolute(定位)

.parent{  position: relative;  width: 200px;  height: 200px;  border: 1px solid;}.child{  position: absolute;  width: 100px;  height: 100px;  /* 1. 应用 margin:auto ,子元素必须拉满整个容器*/  width: 200px;  height: 200px;  left: 0;  right: 0;  top: 0;  bottom: 0;  margin: auto;  /* 2. 通过 calc()函数,值为 50% 减去宽度/高度的一半 */  left: calc(50% - 150px);  top: calc(50% - 150px);  /* 3. 设置该元素的偏移量,值为 50%,并通过外边距 -值 的形式将元素挪动回去 */  left: 50%;  top: 50%;  margin-left: -50px;  margin-top: -50px;  /* 4. 不晓得子元素的宽高,应用transfrom:translate(-50% -50% ) ,CSS3属性有兼容性问题*/  transform: translate(-50%, -50%);  background: pink;  line-height: 100px;  text-align: center;}

应用inline-block+table-cell

.parent {  display: table-cell;  text-align: center;  vertical-align: middle;}.child {  display: inline-block;}

应用flex布局

只需设置父节点属性,无需设置子元素,兼容性问题

.parent {  display: flex;  /* 1. 通过 justify-content 以及 align-items: center 实现 */  justify-content:center;  align-items:center;}.child {  /* 2. 或者通过 margin auto 实现 */  margin: auto;}

应用Grid布局

只需设置父节点属性,无需设置子元素,兼容性问题

.parent {  display: grid;  /* 通过 items 属性实现*/  /* align-items: center; */  /* justify-items: center; */  /* items 的缩写 */  /* place-items: center; */  /* 或者通过 content 属性 */  /* align-content: center; */  /* justify-content: center; */  /* content 的缩写 */  /* place-content: center; */}.child {  /* 或者通过 margin auto 实现 */  /* margin: auto; */  /* 或者通过 self 属性 */  /* align-self: center;  justify-self: center; */  /* self 的缩写 */  place-self: center;}

首字母大写

text-transform: capitalize

活用border-radius

活用 border-radius, 实现波浪百分比图。

// 应用 `text-decoration-style: wavy` 生成波浪下划线。<div >ABCDEFGHIJKLMNOPQ</div><div class="wave">ABCDEFGHIJKLMNOPQ</div>div {    width: 200px;    height: 200px;    line-height: 200px;    font-size: 50px;    margin: auto;    text-align: center;    overflow: hidden;}.wave {    border: 5px solid deeppink;    border-radius: 50%;    animation: indent 5s infinite linear;}div {    color: transparent;    text-decoration-line: underline;    text-decoration-style: wavy;    text-decoration-color: deeppink;}@keyframes indent {    100% {        text-indent: -110px;    }}

代码片段

活用 border-radius, 实现波浪动画。

<div class="container"> <div class="wave"></div> </div>.container {    position: absolute;    width: 200px;    height: 200px;    padding: 5px;    border: 5px solid rgb(118, 218, 255);    top: 50%;    left: 50%;    transform: translate(-50%, -50%);    border-radius: 50%;    overflow: hidden;}.wave {    position: relative;    width: 200px;    height: 200px;    background-color: rgb(118, 218, 255);    border-radius: 50%;     &::before,    &::after{        content: "";        position: absolute;        width: 400px;        height: 400px;        top: 0;        left: 50%;        background-color: rgba(255, 255, 255, .4);        border-radius: 45%;        transform: translate(-50%, -70%) rotate(0);        animation: rotate 6s linear infinite;        z-index: 10;    }        &::after {        border-radius: 47%;        background-color: rgba(255, 255, 255, .9);        transform: translate(-50%, -70%) rotate(0);        animation: rotate 10s linear -5s infinite;        z-index: 20;    }}@keyframes rotate {    50% {        transform: translate(-50%, -73%) rotate(180deg);    } 100% {        transform: translate(-50%, -70%) rotate(360deg);    }}

代码片段

活用border-radius实现充电动画

<div class="container">    <div class="header"></div>    <div class="battery">    </div>    <div class="battery-copy">        <div class="g-wave"></div>        <div class="g-wave"></div>        <div class="g-wave"></div>    </div></div>html,body {    width: 100%;    height: 100%;    display: flex;    background: #e4e4e4;}.container {    position: relative;    width: 140px;    margin: auto;}.header {    position: absolute;    width: 26px;    height: 10px;    left: 50%;    top: 0;    transform: translate(-50%, -10px);    border-radius: 5px 5px 0 0;    background: rgba(255, 255, 255, .88);}.battery-copy {    position: absolute;    top: 0;    left: 0;    height: 220px;    width: 140px;    border-radius: 15px 15px 5px 5px;    overflow: hidden;}.battery {    position: relative;    height: 220px;    box-sizing: border-box;    border-radius: 15px 15px 5px 5px;    box-shadow: 0 0 5px 2px rgba(255, 255, 255, 0.22);    background: #fff;    z-index: 1;        &::after {        content: "";        position: absolute;        left: 0;        right: 0;        bottom: 0;        top: 80%;        background: linear-gradient(to bottom, #7abcff 0%, #00BCD4 44%, #2196F3 100%);        border-radius: 0px 0px 5px 5px;        box-shadow: 0 14px 28px rgba(33, 150, 243, 0), 0 10px 10px rgba(9, 188, 215, 0.08);        animation: charging 10s linear infinite;        filter: hue-rotate(90deg);    }}.g-wave {    position: absolute;    width: 300px;    height: 300px;    background: rgba(255, 255, 255, .8);    border-radius: 45% 47% 44% 42%;    bottom: 25px;    left: 50%;    transform: translate(-50%, 0);    z-index: 1;    animation: move 10s linear infinite;}.g-wave:nth-child(2) {    border-radius: 38% 46% 43% 47%;    transform: translate(-50%, 0) rotate(-135deg);}.g-wave:nth-child(3) {    border-radius: 42% 46% 37% 40%;    transform: translate(-50%, 0) rotate(135deg);}@keyframes charging {  50% {        box-shadow: 0 14px 28px rgba(0, 150, 136, 0.83), 0px 4px 10px rgba(9, 188, 215, 0.4);    }        95% {        top: 5%;        filter: hue-rotate(0deg);        border-radius: 0 0 5px 5px;        box-shadow: 0 14px 28px rgba(4, 188, 213, .2), 0 10px 10px rgba(9, 188, 215, 0.08);    }    100% {        top: 0%;        filter: hue-rotate(0deg);        border-radius: 15px 15px 5px 5px;        box-shadow: 0 14px 28px rgba(4, 188, 213, 0), 0 10px 10px rgba(9, 188, 215, 0.4);    }}@keyframes move {    100% {        transform: translate(-50%, -160px) rotate(720deg);    }}

代码片段

活用border-radius变换实现loading成果

<div id="app">loading</div>body {    background: #000;}div {    position: relative;    width: 35vmin;    height: 35vmin;    background: linear-gradient(120deg, #34e0f0 0%, #b400ff 100%);    opacity: .8;    margin: 25vh auto;    border-radius: 35%;    animation: rotateMain 2s linear infinite;}div::before {    position: absolute;    content: "";    top: 0;    left: 0;    right: 0;    bottom: 0;    background: linear-gradient(180deg, #35a0f0 0%, #b233f0 100%);    opacity: .8;    box-shadow: 5px 5px 90px rgba(10, 102, 255, 0.5);    border-radius: 35%;    animation: rotateMain 8s linear 2s infinite;}div::after {    position: absolute;    top: 0;    left: 0;    right: 0;    bottom: 0;    background: linear-gradient(60deg, #33580f 0%, #b7ee6d 100%);    opacity: .8;    box-shadow: 5px 5px 60px rgba(20, 102, 255, 0.3);    border-radius: 35%;    animation: rotateMain 8s linear 4s infinite;    z-index: -1;}#app{  color: #fff;  text-align: center;  line-height: 35vmin;  text-transform: capitalize}@keyframes rotateMain {    50% {        transform: rotateZ(180deg);        border-radius: 50%;    }    100% {        transform: rotateZ(360deg);        border-radius: 35%;    }}

代码片段

活用border-radius单标签线条动画

<div id="app"></div>html,body{    width: 100%;    height: 100%;    overflow: hidden;}body {    background: #000;    filter: blur(5px) contrast(20);        &::before {        position: absolute;        content: "";        background: #000;        top: 0;        left: 0;        right: 0;        height: 20vh;        z-index: 10;    }}div {    position: relative;    width: 30vmin;    height: 30vmin;    margin: 30vh auto;    // border: 1vmin solid #fff;     border-radius: 46% 42% 47% 44%;    background: linear-gradient(#fff, #9c27b0);    transform: scale(15) translate(0, -13vh) rotate(0deg);    animation: rotate 10s infinite linear alternate;    &::before {        content: "";        position: absolute;        width: 99%;        height: 99%;        background: #000;        border-radius: 46% 42% 47% 44%;        transform: translate(-50%, -50%);        left: 50%;        top: 50%;    }}@keyframes rotate {    100% {        transform: scale(10) translate(0, -15vh) rotate(360deg);    }}@keyframes move {    50% {        left: 50%;        right: 49.95%;    }    100% {        left: 90%;        right: 9.7%;    }}

代码片段

结语

本次分享的是集体的一些浅见,写的不好请轻喷!!!!欢送一起交换!!!!

Html Css 前端常识总结