CSS样式总结

669 阅读8分钟

css的引入方式

分别是内联样式(行内样式)、内部样式表(内嵌样式)、外部样式表(连接外部样式)和导入外部样式。

1. 内联样式 :
<标记名 style = "样式属性:样式属性值; 样式属性:样式属性值……"> </标记名>

2.内部样式表 :
选择器{样式名1:样式值1;样式名2:样式值2;}

3.链接外部样式
<link rel="stylesheet" href="url地址">

4.导入外部链接
<style> @import url("url地址"); </style>

css的注释

CSS的注释:/* 代码 */

CSS选择器

1. 标记选择器:

css标签选择器就是用来声明标签的。如<h1>~ <h6> <p> < i>

/*写法:*/
<style>
     h2{
            color: red
        }
 </style>      

2.通用选择器:

通用选择器是一种特殊的选择器,他用“*”表示,对所有的元素都生效。

  /*写法:*/
   <style>
        *{
            color: red;
        }
    </style>

3.ID选择器:

ID选择器为指定的id的元素设置样式,所有的主流浏览器都支持ID选择器。使用“#”前缀标识,后紧跟指定元素的的id名称。

语法格式: 标记名#id{属性1:值1;属性2:值2;...}

/*写法*/
             <style>
                  #bf{
                   color: red;
                 }
             </style>

4.类选择器
类选择器和id选择器使用类似,定义是不使用“#”,而是用“.”引用的不是id属性,而是class值。

语法格式:标记名#id{属性1:值1;属性2:值2;...}

/*写法*/
<style>
  .bf{
            color: red;
        }
</style>

5.属性选择器

属性选择器,你可以指定某个元素,或者还可以同时指定某个属性值和其对应的属性值。

选择器[属性名 = 属性值]

  • 选择器[属性名 = 属性值] 完全匹配
  • 选择器[属性名 ^= 属性值] 开头匹配
  • 选择器[属性名 $= 属性值] 结尾匹配
  • 选择器[属性名 *= 属性值] 包含匹配
 /* 写法:*/
 <style>
        li[abc=qw]{
            font-size: 30px;
        }
        li[abc^=qw]{
            background-color: rgb(178, 205, 207);
        }
        li[abc$=er]{
            color: red;
        }
        li[abc*=w]{
            text-align: center;
        }
    </style>

6.后代选择器

后代选择器又称为包含选择器。后代选择器可以选择作为某元素的后代。
写法:把外层的标记在前面,内层标记后面。

语法格式 : E1 E2 {属性1: 属性值1 ; 属性2: 属性值2 ; ...}

/*写法:*/
<style>
    div span{
            font-size: 40px;
            color: red;
        }
</style>        

7.子代选择器

子元素选择器只能选择作为某种元素的子元素,子元素选择器使用大括号。只找自己的子元素。

语法格式 :E > F {属性1: 属性值1 ; 属性2: 属性值2 ; ...}

/*写法:*/
<style>
    div>span{
            background-color: yellowgreen;
        }
 </style>       

8.相邻选择器

两个元素具同一个父元素,而且两个元素后面紧紧相连。

语法格式: E + F {属性1: 属性值1 ; 属性2: 属性值2 ; ...}

/*写法:*/
<style>
  li+li{
            color:springgreen;
        }
</style>
 关系:
               父元素: 直接包含其他元素,这个元素就是包含元素的父元素
               祖先元素:包含其他元素,这个元素就是包含元素的祖先元素
               子元素: 直接被包含的元素,这个被包含的元素就是包含元素的子元素
               后代元素: 被包含的元素,这个被包含的元素就是包含元素的后代元 

9.伪类选择器

自动识别的特殊选择器,它最大的选择器可以对超链接不同的定义不同的样式效果。

常用的伪类选择器:

:hover 鼠标悬浮样式
:link 未访问过得样式
:visited 已经访问过

语法格式:选择符:伪类 {属性1: 属性值1 ; 属性2: 属性值2 ; ...}

/*写法*/
 a:visited{
            color: red;   
        }
        a:link{
            color: rosybrown;
        }
        a:hover{
            font-size: 30px;
        }
    </style>

10.伪元素选择器

  伪元素选择器
            ::first-line 向元素的第一行内容添加样式
            ::first-letter 向元素首字母添加样式
            ::before 向元素之前添加内容 与content结合使用
            ::after 向元素之后添加内容 与content结合使用
写法:
<style>
   p::first-line{
            color:darkblue;
        }
        p::first-letter{
            font-size: 40px;
        }
        p::before{
            /* content: "这是在最前面的内容"; */
            content:"【";
        }
        p::after{
            /* content: "这是在文本之后的内容"; */
            content:"】";
        }
    </style>

11.选择器分组

希望h2个段落p元素都会灰色,就可以用选择器分类。

语法格式:h2 , p

/*写法:*/
   h1,p{
color: red;
}

选择器的优先级

根据选择器的类型从低到高排列:

  • 元素选择器(标签)和伪元素选择器
  • 类选择器、属性选择器和伪类选择器
  • ID选择器 根据引入方式从低到高排列:
  • 外部样式
  • 内部样式
  • 内联样式

css单位

尺寸单位

  • % : 百分比。它描述是相对于父元素的百分比。如50%,则为父元素的一半。
  • px:像素
  • em:当前元素的尺寸。一般浏览器字体大小默认为16px,2em = px

背景

  • background-color设置元素的背景色, 属性的值为颜色值或关键字。
/*颜色值*/
background-color: red;
/* 特殊值*/ 
background-color: transparent; 透明的意思,默认值;
  • background-image属性用于为一个元素设置一个或者多个背景图像。
> 语法方式:background - image:url(图片路径)|none
> ../表示上一节目录       ./表示当前目录         none :表示不显示背景图

  • background-repeat定义背景图像的重复方式。背景图像可以沿着水平轴,垂直轴。
`repeat`: 沿水平和垂直两个方向平铺。
`no-repeat`: 不平铺,背景图片只显示一次。
`repeat - x`: 只沿水平方向平铺
`repeat - y`:只沿垂直方向平铺
`round`: 自动缩放直到适应填充整个容器
`space`: 图像会尽可能得重复, 但是不会裁剪。
  • background-attachment定义背景图像的滚动。
/* 属性值*/
scroll(滚动)  fixed(固定)  inherit(继承)
scroll : 随着页面的滚动轴背景图片将移动
fixed  : 随着页面的滚动轴背景图片不会移动
inherit: 它的父元素
  • background-position 用来控制背景图片在元素中的位置。
/*水平关键字*/
left(居左)  center(居中)  right(居右)
/*垂直关键字*/
top(顶端)  center(居中)  bottom(低端)

字体文本样式

  • font-family 字体类型。可以同时声明多种字体,用逗号分隔开。中文,楷体,需要双引号引起来。

基础语法: font-family:字体1 ,字体2 , ...

h1{
`font-family` : '华文彩云'
}
p{
`font-family` : 隶书 , 黑体 , 宋体;
}

<h1> 设置字体为华文彩云</h1>
<p> 
字体按隶书、黑体、宋体、顺序设置
</p>

  • font-size 指定字体的大小,常用的单位是px。

font-size: 12px;

  • font-weight 指定了字体的粗细程度
font-weight: normal;      /* 正常 */ 
font-weight: bold;        /* 粗体 */ 
font-weight: bolder;      /* 加粗体 */ 
font-weight: lighter;     /* 细体 */ 
font-weight: 400;         /* 数字100-900,数值越大越粗,400是正常 */

  • text-indent 定义一个块元素首行文本内容之前的缩进量。
     /*例如*/
     text-indent: 40px;
  • line-height 用于设置多行元素的空间量,如多行文本的间距。
     normal : 表示默认行高;
     长度值:用长度表示行高, 如"line- height : 20px", 表示设置行高为20px;
     百分比:用百分比来表示行高,"line- height : 150%"; 相当于1.5倍行距。
     数值 :用乘积因子表示行高,"line- height : 1.5"就表示1.5倍行距。
  • text-align 可以控制文本的对齐方式。
/*属性值*/
left : 把文本排列到左边,默认值,
right: 把文本排列在右边。
center : 把文本排列在中间。
justify : 实现双端对齐文本效果。
  • font-style字体的风格
font-style: normal; /* 常规体 */ 
font-style: italic; /* 斜体 一般是指书写体,相比无样式的字体,通常会占用较少的高度 */ 
font-style: oblique; /* 倾斜体 只是常规字形的倾斜版本 */

text-decoration-line文本修饰

text-decoration: none; /* 没有文本修饰效果 , 默认值 */ 
text-decoration: underline; /* 在文本的下方有一条下划线 */ 
text-decoration: overline; /* 在文本的上方有一条上划线 */ 
text-decoration: line-through; /* 设置文本删除线 */ 
text-decoration: blink; /* 设置文本闪烁 */

盒子模型

盒子模型是由content(内容)、padding(内边距)、border(边框)和margin(外边距)组成的抽象模型。

  • padding内边距,padding区域指一个元素的内容和其边界之间的空间,该属性不能为负值。
padding-top: 10px; 
padding-right: 10px; 
padding-bottom: 10px; 
padding-left: 10px;

/*简写:*/

padding: 20px; /* 上下左右都为20px */ 
padding: 20px 30px; /* 上下为20px,左右为30px */ 
padding: 20px 30px 40px; /* 上为20px 左右为30px 下为40px */ 
padding: 20px 30px 40px 50px; /* 依次为上右下左 */
  • border用于设置各种单独的边界属性的简写属性。border可以用于设置一个或多个以下属性的值: border-widthborder-styleborder-color
border: none; /* 没有边框 */ 

border-width: 10px; /* 边框的宽度  */ 
border-color: red; /* 边框的颜色 */ 

border-style: solid; /* 边框的样式 (值:`solid`实心 ` node`无边框 `dashed`虚线 `double` 双实线 `dotted` 点线边框...) */ 

border: 10px solid red;     /* 宽度 | 样式 | 颜色 */ 
border-right: 10px solid red;   /* 单独对一个方向上的边框设置 */ 

  • margin给定元素设置所有四个(上下左右)方向的外边距属性。这是四个外边距属性设置的简写。四个外边距属性设置分别是: margin-top, margin-right, margin-bottom 和 margin-left 。指定的外边距允许为负数。
margin: style /* 单值语法 所有边缘 */ 举例: margin: 1em;
margin: vertical horizontal /* 二值语法 纵向 横向 */ 举例: margin: 5% auto; 
margin: top horizontal bottom /* 三值语法 上 横向 下 */ 举例: 
margin: 1em auto 2em; margin: top right bottom left /* 四值语法 上 右 下 左 */ 举例: margin: 2px 1em 0 auto;

/*注意:*/

1.  左右横排的盒子之间的间距是 两者的外边距相加
2.  上下排列的盒子之间的间距是 以最大的为准(大的会把小的给覆盖掉)
3.  两个嵌套的盒子,他们都有`margin-top` 以最大的为准(大的会把小的给覆盖掉)

CSS内容太多了,就暂时先到这里,有错误之处欢迎指出,非常感谢!!