本章内容只是对HTML简单的概括,多少会有表述缺漏,更多细节还得读者另行翻阅其他资料
这里的内容可能很细,对于css熟悉的大神相对会觉得过于冗长,不过这个本身就是让跟我一样的小白参阅的
先来一张图走进科学,哈哈哈哈
点下这个图可以看到拓展版
想要源文件的,都放在这里了我的GitHub,或者从我的百度网盘下载,提取码:xzm8。
因为文件为xxx.emmx类型文件,所以还要移步mindMaster打开。
<div style="width:100px;height:50px;">div>
<head>
<meta charset="UTF-8">
<title>演示title>
<style>
div{
width: 100px;
height: 100%;
}
style>
head>
<head>
<meta charset="UTF-8">
<title>演示title>
<link rel="stylesheet" href="../../one.css">
head>
center:居中
border-box:盒子类型
content-box:
url()
rgb()
rgba()
.one{width:100px;}
/*在这里写注释*/
速写:font:style weight size/line-height family;
font-family:"微软雅黑","黑体",serif;
font-size:12px;
font-weight:bold;
font-style:italic;
line-height:2em;
两个字符行高color(字体颜色)
text-align(文本对齐方式)
例:text-align:center;
值:center(水平居中)、left(向左)、right(向右)
(延伸):控制的对象是行内元素
text-decoration(字体装饰)
注:一般情况下我们写网页会直接设置为text-decoration:none;
取消网页全部默认样式,当我们再需要的时候再去用它。
速写:text-decoration:underline solid pink;
效果:
text-decoration-line(文本装饰线)
值:underline(下划线)、line-through(删除线)、overline(上划线)、none(没有)
text-decoration-style(文本装饰类型)
值:solid(实心)、dotted(虚线圆)、double(双线)、dashed(虚线方)、wavy(波浪)
text-decoration-color(文本装饰颜色)
值:#000、red
text-indent(文本缩进)
例:text-indent:2em;
文本缩进2个字符。
值:em
text-shadow(字体阴影)
例:text-shadow:2px 2px 3px #ccc;
向下2像素 向右2像素 模糊半径3像素 灰色;
注:一般将列表样式消掉list-style:none;
例:
div{
width: 100px;
height: 60px;
margin: 10px 20px 30px 40px;
border: 2px solid #000;
padding: 40px 30px 20px 10px;
background-color: pink;
}
margin:2px 5px;
上下2均像素 左右均5像素margin:5px 6px 7px;
上5像素 左右均6像素 下7像素margin:0 5px 15px 10px;
上0 左5 下15 右10border:1px solid #000;
div{
width: 100px;
height: 60px;
background-color: pink;
border-radius: 30px;
}
div{
width: 100px;
height: 60px;
background-color: pink;
border-radius: 50%;
}
效果:
px与%区别当盒子宽高不等的情况下,值越大,px最终趋近于类似田径场的一个形状,而%最终趋近于一个椭圆形;宽高等情况下,值越大,px和%都趋近于圆形。
box-shadow:5px 10px 3px #ccc;
向右5 向下10 模糊半径3 灰色div{
width: 100px;
height: 60px;
background-color: pink;
box-shadow:5px 10px 3px #ccc;
}
效果:
阴影向里:box-shadow:inset 5px 10px 3px #ccc;
例子:
div{
width: 100px;
height: 60px;
background-color: pink;
box-shadow:inset 5px 10px 3px #ccc;
}
background:url('') no-repeat center;
background:center/cover padding-box url('') no-repeat ;
background-size:12px 15px
background-size:cover;
div{width:100px;}
#one{}
#one{width:100px;}
.second{}
.second{width:100px;}
div,#one{}
div#one{}
font-size:12px;
定义页面全部字体大小为12px;.nav>ul>li{}
.nav li{}
.products>li.ios+*{}
解析:选择clss="products"的元素里class="ios"的li元素之后的第一个同级元素.products>li.ios+div{}
解析:选择clss="products"的元素里class="ios"的li元素之后的第一个同级元素且这个元素为div元素.products>li.ios~*{}
解析:选择clss="products"的元素里class="ios"的li元素之后所有同级元素.products>li.ios~.one{}
解析:选择clss="products"的元素里class="ios"的li元素之后class=one的所有元素(1)与状态相关
.one>ul:hover{}
(工标在ul元素上时,触发ul{})<div class="one">
<ul>ul
<li>lili>
ul>
div>
css:
one>ul:hover>li{}
(工标在ul元素上时,触发ul元素下所有li元素).one>ul:hover~.one{}
(工标在ul元素上时,触发.one{}).products>li:first-child
(选中class=products的元素里第一个li元素)<div class="products">
<div>第一个divdiv>
<div>第二个divdiv>
<div>第三个divdiv>
<div>第四个divdiv>
div>
css:
.products{
width: 100px;
height: 200px;
background-color: pink;
}
.products > div:first-child{
background-color: teal;
}
.products>li:last-child
(选中class=products的元素里最后一个li元素).products>li:nth-child(n)
(选中class=products的元素里第n个li元素).products>:first-of-type
(选中class=products的元素里每一种类型的第一个元素).products>:last-of-type
(选中class=products的元素里每一种类型的最后一个元素).products>:nth-of-type(n)
(选中class=products的元素里每一种类型的第n个元素)<div class="products">
<div>第一个divdiv>
<div>第二个divdiv>
<p>第一个pp>
<p>第二个pp>
<p>第三个pp>
<p>第四个pp>
<div>第三个divdiv>
<div>第四个divdiv>
div>
css:
.products{
width: 100px;
height: 200px;
background-color: pink;
}
.products > :nth-of-type(3){
background-color: teal;
}
作用:可用于清除浮动(浮动布局时,子元素脱离文档流导致父元素为空,添加一个伪元素即可把父元素原本的内容撑起)
<div class="products">
<div>第一个divdiv>
<div>第二个divdiv>
<div>第三个divdiv>
<div>第四个divdiv>
div>
<div class="noafter">
<p>第一个pp>
<p>第二个pp>
<p>第三个pp>
<p>第一四个pp>
div>
css:
.products,.noafter{
width: 300px;
height:auto;
background-color: pink;
}
.products > div{
background-color: teal;
float: left;
}
.products::after{
content: "";
display: block;
clear: both;
}
.noafter > p{
background-color: blue;
float: left;
}
应用:在一个标签中,多个选择器定义同一个属性,依据权重值大小选择其中一个选择器的属性。
例:
.one{
background-color:pink !important;
}
注:本质是让块元素在一行显示
作用:编写网页框架居多
特点:宽高默认由内容或子元素决定,脱离文档流导致后面的元素抢占它的位置,一行无法容纳自动换行
注意:float会把浮动元素变成块级元素
<div>
<ul>
<li>第一个li>
<li>第二个li>
<li>第三个li>
<li>第四个li>
ul>
div>
css:
div{
background-color: pink;
}
div > ul > li{
width: 100px;
height: 40px;
background-color: teal;
float: left;
}
div > ul::after{
content: "";
display: block;
clear: both;
}
<div>
<div class="left">左边元素浮动div>
<div class="right">右边元素加左外边距div>
div>
css:
div{
background-color: pink;
height: 100px;
width: 200px;
}
div > .left{
width: 80px;
height: 80px;
background-color: teal;
float: left;
}
div > .right{
width: 80px;
height: 80px;
background-color: blue;
margin-left: 80px;
}
作用:一个元素悬挂在其他元素之上,优先考虑定位布局,例如:模态框、下拉菜单、固定宣传栏、网页聊天界面
定位元素特点:可以使用 top、left、bottom、right属性。
值:
<div class="con">
<div class="posi">div>
<div class="posi2">div>
div>
css:
.con{
width: 250px;
height: 250px;
background-color: #000;/*黑色*/
}
.posi{
width: 150px;
height: 100px;
background-color:#D3D3D3;/*灰色*/
position: relative;
top: 20px;
left: 10px;
}
.posi2{
width: 150px;
height: 100px;
background-color: #696969;/*浅灰色*/
}
<div class="con">
<div class="posi">div>
<div class="posi2">div>
div>
css:
.con{
width: 250px;
height: 250px;
background-color: #000;/*黑色*/
}
.posi{
width: 150px;
height: 100px;
background-color:#D3D3D3;/*灰色*/
position: absolute;
top: 20px;
left: 20px;
}
.posi2{
width: 150px;
height: 100px;
background-color: #696969;/*浅灰色*/
}
<div class="posi">定位元素div>
<div class="posi2">定位元素div>
<div class="flo">浮动元素div>
<div class="con">正常元素div>
css:
.posi{
width: 100px;
height: 100px;
background-color: red;
position: absolute;
top: 47px;
z-index: 1; /*有效果*/
}
.posi2{
width: 100px;
height: 100px;
background-color: yellow;
position: absolute;
left: 20px;
top: 27px;
}
.flo{
background-color: blue;
width: 150px;
height: 150px;
float: left;
z-index: 10; /*没有效果*/
}
.con{
width: 250px;
height: 250px;
background-color: teal;
z-index: 100; /*没有效果*/
}
作用:多用于手机网页
前提条件:父元素在主轴上要有固定的值,主轴的值由子元素设定,交叉轴的值填满父元素。
特点:父元素为伸缩盒子时,子元素会随着父元素设置的主轴(flex-direction)自动排列在一行内,(通常我们希望多个块元素一行排列时要用到浮动布局或定位布局)。
例:html:
<div class="con">
<div>第一个盒子div>
<div>第二个盒子div>
<div>第三个盒子div>
div>
css:
.con{
display: flex;
flex-direction:row;
min-width: 500px;
height: 100px;
background-color: pink;
}
.con > div{
flex: 1 1 100px;
background-color: teal;
height: 80px;
border:1px solid #000;
}
效果:去拖动屏幕,发现子元素随着父元素的宽变大而变大,当屏幕小于500px时,父元素不再缩小,固定于500px宽,同时子元素的宽也固定。
<div class="container">
<div class="con">
<div>第一个图片div>
<div>第二个图片div>
<div>第三个图片div>
div>
div>
css:
.container{
height: 100px;
width: 200px;
overflow: hidden;/*将超出的部分先隐藏*/
}
.con{
height: 100%;
width: 600px;
animation-name:lunbo;/*动画名称*/
animation-duration:12s;/*持续时间*/
animation-direction:normal;/*运动方向*/
animation-iteration-count:infinite;/*执行次数*/
animation-timing-function:ease-in-out;/*执行时间曲线*/
}
.con > div{
float: left;
width: 200px;
height: 100%;
background-color: pink;
}
@-webkit-keyframes lunbo{
0%,25%{
margin-left: 0px;
}
40%,60%{
margin-left:-200px;
}
75%,100%{
margin-left:-400px;
}
}
<div class="one">
第一个盒子
div>
<div class="two">第二个盒子div>
<div class="three">第三个盒子div>
css:
.one,.two,.three{
width: 100px;
height: 100px;
}
.two{
background-color: pink;
transform: rotate(45deg);/*默认z轴旋转*/
transform-origin: right bottom;
}
.one{
background-color: teal;
transform: skewX(45deg);
transform-origin: left top;
}
.three{
background-color: #FF00FF;
transform: scale(2);
transform-origin: left top;
}
注意:如果把元素实现移动效果,要事先设好位置值,以免仅仅在:hover里设值时出现持续时间作用不出来导致不能触发效果;
效果:
html:
<div class="one">
<div class="two">第二个盒子div>
div>
css:
.one{
width: 300px;
height: 300px;
background-color: #FFFACD;
position:relative;
}
.two{
background-color: pink;
width: 100px;
height: 100px;
position: absolute;/*加绝对定位去运用left等属性*/
transition-property:all;
transition-duration:4s;/*过渡时间要设置在元素内,保证光标移走时还有过渡效果*/
left: 0px; /*要设值,以免持续时间不起作用*/
top: 0px;
}
.one .two:hover{
background-color:#00FFFF;
border-radius: 50%;
left:100px;
top: 100px;
transform: rotate(45deg);
}
transition-property:width;
transition-property:width,background;
transition-property:all;
例一:transition:property duration timing delay;
属性 持续时间 时间曲线 延迟
transition:transfrom 2s linear;
一般在构建简单的框架页面的时候,我们会使用到媒体查询,它可以让网页适应有的屏幕宽,例如可以适应pc端、pad、移动端。而面对相对复杂的网页(例如京东、淘宝),我们需要多套网页(每一套网页一套框架)去满足不同不同的宽屏。媒体查询只是一套框架去引用不同的样式,达到适应不同宽屏的效果。
效果:
html:
<div class="con">
<div>第一个盒子div>
<div>第二个盒子div>
<div>第三个盒子div>
<div>第四个盒子div>
<div>第五个盒子div>
<div>第六个盒子div>
div>
css:
.con{
background-color: #F5F5F5;
display: flex;/*伸缩盒子*/
/*width: 100%;*/
flex-wrap: wrap;/*自动换行*/
}
.con > div{
float: left;
background-color: pink;
margin: 10px 5px;
}
/*平板*/
@media screen and (min-width: 768px) and (max-width: 1024px){
.con > div{
background-color: teal;
flex: 1 1 45%;
}
}
/*电脑*/
@media screen and (min-width: 1024px) {
.con > div{
background-color: blue;
flex: 1 1 15%;
}
}
/*手机*/
@media screen and (max-width: 768px){
.con > div{
background-color: #fff;
flex: 1 1 100%;
flex-wrap: wrap;
}
}
@media screen and (min-width: 768px) and (max-width: 1024px) {}
@media screen and (min-width: 1024px) {}