css基础

样式表书写位置

内嵌式写法

<style type="text/css"></style>

外链式写法

<link rel="stylesheet" href="1.css">

行内式写法

<h1 style="font-size:16px"></h1>

三种写法特点:

★内嵌式写法,样式只作用于当前文件,没有真正实现结构表现分离。
★外链式写法,作用范围是当前站点,谁调用谁生效,范围广,真正实现结构表现分离。
★行内样式表,作用范围仅限于当前标签,范围小,结构表现混在一起。(不推荐使用)

选择器

基础选择器

标签选择器
类选择器(.)
id选择器(#)
通配符选择器(*)

注意:类选择器命名规则
        ◎不能用纯数字或者数字开头来定义类名
        ◎不能使用特殊符号或者特殊符号开头(_)来定义类名
        ◎不建议使用汉字来定义类名
        ◎不推荐使用属性或者属性的值来定义类名

复合选择器

交集选择器
后代选择器(空格)
子代选择器(>)
并集选择器(,)

属性

文本属性

font-size:16px;  文字大小,默认字体大小为16px
font-weight: 700;   值从100-900,文字粗细,不推荐使用font-weight:bold;
font-family:微软雅黑/microsoft yahei/unicode编码;  文本的字体
font-style: normal | italic;      normal 默认值  italic  斜体
line-height: 行高

文本属性连写文字大小和字体为必写项

font:italic 700 16px/40px  微软雅黑,宋体;

背景属性

background-color:red;                背景颜色
background-image:url(“1.png”);       背景图片
background-repeat:   repeat  |   no-repeat   |    repeat-x  |  repeat-y 背景平铺

background-position:   left  | right  |  center   | top   |  bottom 背景定位
方位值只写一个的时候,另外一个值默认居中
写2个方位值的时候,顺序没有要求
写2个数值的时候,第一个值代表水平方向,第二个值代表垂直方向    

background-attachment:  scroll  |  fixed 背景是否滚动

连写:
background:red url(1.png) no-repeat 30px 40px scroll;
连写的时候没有顺序要求,url为必写项

行高属性

行高是可以继承的

行高的单位: 20px 2em 150% 2  文字大小:20px
行高单位除了像素以外,行高都是与文字大小乘积

嵌套盒子的行高继承:
不带单位时,行高是和子元素文字大小相乘
em和%的行高是和父元素文字大小相乘
行高以像素为单位,就是定义的行高值

input属性

border:0 none;去掉边框
outline-style:none;去掉轮廓线

resize:none;禁止文本框拖拽

li属性

list-style:none; 去除前边的标识符号

图片和文字垂直居中对齐

vertical-align:middle|top|bottom;

vertical-align对inline-block最敏感
默认属性是:vertical-align:baseline

模拟鼠标

cursor: pointer;  鼠标变成小手
cursor: move;     鼠标变成四角箭头
cursor: text;     鼠标变成工形插入条光标
cursor: default;  鼠标变成小白

圆角矩形

border-radius: 宽/高一半;
border-radius: 50%;
border-radius: 0.3em;
border-radius: 左上角  右上角  右下角  左下角;

a链接无效

<a href="javascript:;">1111111111</a>
<a href="javascript:void(0)">1111</a>

首行缩进text-indent

文本的首行进行缩进
text-indent:40px;/2em(代表2个字符);

标签显示方式分类

块元素

典型代表,Div,h1-h6,p,ul,li
特点: 
    ★独占一行
    ★可以设置宽高
    ★ 嵌套(包含)下,子块元素宽度(没有定义情况下)和父块元素宽度默认一致。

行内元素

典型代表 span  ,a,  ,strong , em,  del,  ins
特点:
    ★在一行上显示
    ★不能直接设置宽高
    ★元素的宽和高就是内容撑开的宽高

行内块元素(内联元素)

典型代表  input  img
特点:
    ★在一行上显示
    ★可以设置宽高

块元素和行内元素的转换

display:block;   行内转块
display:inline;   块转行内
display:inline-block;  块或行内转行内块

css三大特性

  • 层叠性

    样式发生冲突的时候,总是执行后边的样式,和调用顺序无关。

  • 继承性

    文字的所有属性都可以被继承

    特殊: h1-h6文字大小不能被继承 a标签文字颜色不能被继承

  • 优先级

默认样式<标签选择器<类选择器<id选择器<行内样式<!important
0          1         10         100     1000     1000以上
特点:继承的权重为0,权重会叠加

权重

left的权重高于right,top的权重高于bottom,当两者同时存在的时候优先执行权重高的

链接伪类

a:link{属性:值;}   链接默认状态   a{属性:值;}是一样的
a:visited{属性:值;} 链接访问之后的状态
a:hover{属性:值;}  鼠标放上去显示的状态
a:active{属性:值;}    链接激活的状态
 :focus{属性:值;}       获取焦点

注意:如果四个链接伪类都使用,按顺序书写。

文本修饰

text-decoration: none  |   underline   | line-through

盒子模型

border边框

border-top-style:   solid   实线 线型
                    dotted  点线
                    dashed  虚线
border-top-color   边框颜色
border-top-width   边框粗细
border-left | right | bottom | top

边框属性的连写  
border:red solid 5px;
特点:没有顺序要求,线型为必写项

去除边框

input{
    border:0 none; /*去掉边框*/
    outline-style:none;/*去掉轮廓线*/
}

边框合并

border-collapse:collapse;

获取光标焦点

label for id
<label for="username">用户名:</label><input type="text" id="username">

.username:focus { background:red; }

内边距

padding-left  | right  |  bottom  |  top
padding: 20px;   上右下左(顺时针)

内边距可以撑大盒子,继承的盒子不会被撑大           
行内元素可以定义左右的内外边距,上下会被忽略掉

外边距

margin

垂直方向外边距合并

两个盒子垂直一个设置上外边距,一个设置下外边距,取的设置较大的值。

嵌套的盒子外边距塌陷

解决方法:  
1 给父盒子设置边框
2 给父盒子overflow:hidden;   bfc   格式化上下文
<http://www.w3cplus.com/css/understanding-bfc-and-margin-collapse.html>

文档流(标准流)

元素自上而下,自左而右,块元素独占一行,行内元素在一行上显示,碰到父集元素的边框换行

浮动

浮动布局

float:  left   |   right
特点:
    元素浮动之后不占据原来的位置(脱标)
    浮动的盒子在一行上显示
    行内元素浮动之后转换为行内块元素。(不推荐使用,转行内元素最好使用display: inline-block;)

作用:
    文本绕图(图片设置浮动)
    制作导航
    网页布局

清除浮动

  • 当父盒子没有定义高度,子盒子浮动之后 不占位置 子盒子不会撑开父盒子,下边的标准流盒子会跑到子盒子下面。
  • 清除浮动不是不用浮动,清除浮动产生的不利影响。

清除浮动的方法

clear: left  |  right  | both
工作里用的最多的是clear:both;
  1. 额外标签法

     <div>
         <div style="float:left;"></div>
         <div style="float:right;"></div>
    
         <!--在最后一个浮动元素后添加标签-->
         <div style="clear:both;"></div>
     </div>
    
  2. 给父级元素使用overflow:hidden;
    BFC原理 注意:如果有内容出了盒子,不能使用这个方法

  3. 单伪元素标签法

    浮动元素的父元素直接调用,也就是没有定义高度的盒子

.clearfix:after {
    content:"";
    display:block;
    height:0;
    line-height:0;
    visibility:hidden;
    clear:both;
}
<!--兼容ie浏览器-->
.clearfix {
    zoom:1;
}
  1. 双伪元素标签法
.clearfix:before .clearfix:after {
    content:"";
    display:table;
}
.clearfix:after {
    clear:both;
}
.clearfix {
    zoom:1;
}

定位

定位方向: left  | right  | top  | bottom

静态定位

position:static;    
标准流,默认值,就是文档流。

绝对定位(看脸型)

position:absolute;  

特点:
    自身从浏览器出发。
    绝对定位之后,元素不占位置,会脱标。
    嵌套的盒子,父元素没有给自身绝对定位,子元素绝对定位,子元素从浏览器出发设置自身位置。

    嵌套的盒子,父元素绝对定位,子元素绝对定位,子元素从父元素出发设置自身位置。
    行内元素转成行内块。(不推荐使用)

相对定位(自恋型)

position:relative; 

位置从自身出发。
设置相对定位之后,还占据原来的位置。
子绝父相,子元素绝对定位,父元素相对定位。
嵌套的盒子,父元素相对定位,子元素绝对定位,子元素从父元素出发设置自身位置。
不能将行内元素转成行内块。

固定定位

position:fixed;   
特点:
    位置从浏览器出发。
    不占据原来的位置,会脱标
    可以将行内元素转换为行内块。(不推荐使用)

定位盒子的居中显示

margin:0 auto;  只能让标准流的盒子居中对齐。
定位的盒子居中:先向右走父元素盒子的一半50%,在向左走子盒子的一半(margin-left:负值。)

规避脱标流

尽量使用标准流。 标准流解决不了的使用浮动。 浮动解决不了的使用定位

<!--设置盒子左边距为auto,将盒子冲到右边-->
margin-left:auto;

层级

使用注意:
1.必须有定位(static除外)
2.用z-index来控制层级数(不给默认为0)

层级高低的划分:

                定位  z-index=0
标准流盒子的文字  浮动
                标准流盒子
                定位 z-index=-1

浮动的盒子比标准流盒子高,能够遮挡住标准流盒子,但遮挡不住里面的图片和文字

overflow

overflow:visible 默认值,内容不会被修建,会呈现在元素框之外
overflow:hidden 多出的内容会被修剪
overflow:scroll 用滚动条显示多余的内容,滚动条一直存在
overflow:auto 多出部分用滚动条显示

隐藏盒子的问题

overflow:hidden; 隐藏盒子超出的部分
display:none; 隐藏盒子而且不占位置(用的最多)
visibility:hidden; 隐藏盒子而且占位置
opacity:0; 隐藏盒子而且占位置
position-left/top/...:-999px; 隐藏盒子而且占位置

css可见性

overflow:hidden; 溢出隐藏
visibility:hidden; 隐藏元素,隐藏之后还占据原来的位置

常配合js使用
display:none; 隐藏元素,隐藏之后不占据原来的位置
display:block; 元素可见

css之内容移除(网页优化)

  1. text-index:-5000em;
  2. 将元素高度设置为0,使用内边距将盒子撑开,给盒子使用overflow:hidden;将文字隐藏

css精灵图

属性选择器

input[type=text][class]{
    width:100px;
}

引入icon图标

网站名(带www.)/favicon.ico    下载所有网站的图标
制作icon的网站:bitbug.net

<link rel="shortcut icon" href="favicon.ico" />

emmet快捷键

生成id名和类名

标签名.类名#id名+tab
没有标签名.类名+tab ==>div

生成同级元素

标签名+标签名+标签名 “+”tab

生成子类标签

标签名>子标签名>子标签名>子标签名+tab
标签名>子标签名>子标签名>子标签名^^子标签名+tab

带固定数量的标签:

ul>li*5+tab

带有序号名称

ul>li.abc$*3 + tab

生成带有内容的标签:

ul>li>a[#]{item}*5

css

width:30px==>w30+tab
height:30px==>h30+tab
margin:30px==>mg30+tab
padding:30px==> pd30+tab
line-height:12px==>lh12px+tab
background==>bg+tab

其它详见emmet语法

标签包含规范

  • div可以包含所有的标签。
  • p标签不能包含div h1等标签。
  • h1可以包含p,div等标签。
  • 行内元素尽量包含行内元素,行内元素不要包含块元素。

css初始化代码

<!--腾讯-->
body,ol,ul,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select{margin:0;padding:0} 
body{font:12px"宋体","Arial Narrow",HELVETICA;background:#fff;-webkit-text-size-adjust:100%;} 
a{color:#2d374b;text-decoration:none} 
a:hover{color:#cd0200;text-decoration:underline} 
em{font-style:normal} 
li{list-style:none} 
img{border:0;vertical-align:middle} 
table{border-collapse:collapse;border-spacing:0} 
p{word-wrap:break-word} 

<!--新浪-->
body,ul,ol,li,p,h1,h2,h3,h4,h5,h6,form,fieldset,table,td,img,div{margin:0;padding:0;border:0;} 
body{background:#fff;color:#333;font-size:12px; margin-top:5px;font-family:"SimSun","宋体","Arial Narrow";}
ul,ol{list-style-type:none;} 
select,input,img,select{vertical-align:middle;} 
a{text-decoration:none;} 
a:link{color:#009;} 
a:visited{color:#800080;} 
a:hover,a:active,a:focus{color:#c00;text-decoration:underline;} 

<!--淘宝-->
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; } 
body, button, input, select, textarea { font:12px/1.5tahoma, arial, \5b8b\4f53; } 
h1, h2, h3, h4, h5, h6{ font-size:100%; } 
address, cite, dfn, em, var { font-style:normal; } 
code, kbd, pre, samp { font-family:couriernew, courier, monospace; } 
small{ font-size:12px; } 
ul, ol { list-style:none; } 
a { text-decoration:none; } 
a:hover { text-decoration:underline; } 
sup { vertical-align:text-top; } 
sub{ vertical-align:text-bottom; } 
legend { color:#000; } 
fieldset, img { border:0; }
button, input, select, textarea { font-size:100%; } 
table { border-collapse:collapse; border-spacing:0; } 

转载于:https://my.oschina.net/u/3160839/blog/828335

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值