CSS

什么是CSS

  • CSS指重叠样式表(Cascading Style Sheets)
  • 样式定义如何显示HTML元素
  • 样式通常存储在样式表中
  • 把样式添加在HTML中,是为了解决内容与表现分离的问题
  • 外部样式表可以极大提高工作效率
  • 外部样式表通常存储在CSS文件中
  • 多个样式定义可层叠为一

CSS创建

HTML去完成文档,浏览器会根据CSS去美化它,CSS中常见的4种引入方式如下

行内式

<p style="color: brown">hello world</p>

这种情况下,会史的HTML的代码显得繁琐不好看,我们一般不推荐使用

嵌入式  

<style>
        p{
            background-color: brown;
        }
</style>

这种方法是通过写在body内的标签去标示,然后统一写在head标签内,一般情况下我们测试代码的时候用的比较多,生产中大多选择链接式

链接式

将CSS代码统一写在CSS文件中,然后通过link去引用

body{
    margin: 0px;
    }
.action_menu{
    background-color: dodgerblue;

    }
.action{
    color: gold;

    font-family: 'Lucida Bright';
   }

#引用
<link href="布局.css" rel="stylesheet" type="text/css">

导入式  

一般不用

<style type="text/css">
 
          @import"文件路径";
 
</style> 

CSS选择器  

id和class选择器

  • id选择器可以表示特定id的HTML元素指定特定的格式,CSS中id选择器以'#'来定义
  • class选择器用于描述一组元素的样式,可以在多个元素中使用,以'.'来定义

id实例

<style>
        #p1{
            color: red;
        }
    </style>

class实例

.action_menu{
    background-color: dodgerblue;
    }

标签选择器和 * 选择器 

标签选择器通过HTML中的标签来匹配

* 选择器能匹配任何元素

一般这两种不常用

属性选择器

具有特定的HTML元素

#属性选择器:把标题为title的元素变色
[title]
{
    color:blue;
}

#属性和值选择器:标题title='runoob'元素的边框样式:
[title=runoob]
{
    border:5px solid green;
}

#多值:其中一个值为hello
[title~=hello] { color:blue; }

#匹配以hello开头的每隔元素
[title ^=hello] {color:red;}

#$匹配以hello结尾的元素
[title $=hello] {color:red;}

#* 匹配包含hello的元素
[title *=hello] {color:red;}

p:before        在每个 <p> 元素的内容之前插入内容 p:before{content:"hello";color:red}   
              
p:after         在每个 <p> 元素的内容之前插入内容  
 p:after{ content:"hello";color:red}

组合选择器  

CSS中包含如下四种组合方式:

  • 后代选择器:以空格分割
  • 子代(元素)选择器:以 > 分割
  • 相邻选择器:以 + 分割
  • 多元素选择器:以 , 分割
E,F         多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔         div,p { color:#f00; }

 E F         后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用空格分隔    li a { font-weight:bold;
 E > F       子元素选择器,匹配所有E元素的子元素F                            div > p { color:#f00; }
 
 E + F       毗邻元素选择器,匹配所有紧随E元素之后的同级元素F                  div + p { color:#f00; }  

伪类

语法

selector.class:pseudo-class {property:value;}

在支持CSS的浏览器中,链接的不同状态可以有不同的状态显示

a:link {color:#FF0000;} /* 未访问的链接 */
a:visited {color:#00FF00;} /* 已访问的链接 */
a:hover {color:#FF00FF;} /* 鼠标划过链接 */
a:active {color:#0000FF;} /* 已选中的链接 */

注:

  • 在CSS中a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。
  • 在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。
  • 伪类的名称不区分大小写。    

CSS常用个属性

CSS背景

CSS背景属性属于定义HTML元素的背景,常用背景效果

  • background-color    背景颜色
  • background-image   背景图片
  • background-repeat  设置背景图像是否及如何重复。
  • background-attachment  背景图像是否固定或者随着页面的其余部分滚动。
  • background-position  设置背景图像的起始位置。
body
{
background-image:url('img_tree.png'); #找到图片
background-repeat:no-repeat 0 0;   #图片不重复
background-position:right top;  #图片放的位置,右侧顶部
}

以上实例中我们可以看到页面的背景颜色通过了很多的属性来控制。为了简化这些属性的代码,我们可以将这些属性合并在同一个属性中。

背景颜色的简写属性为 "background"

body {background:#ffffff url('img_tree.png') no-repeat  right top;}

CSS文本  

文本对齐

文本排列属性是用来设置文本的水平对齐方式。文本可居中或对齐到左或右,两端对齐。

当text-align设置为"justify",每一行被展开为宽度相等,左,右外边距是对齐(如杂志和报纸)。

h1 {text-align:center;}
p {text-align:right;}
p {text-align:justify;}

常用文本属性如下

color    设置文本颜色
direction    设置文本方向。
letter-spacing    设置字符间距
line-height    设置行高
text-align    对齐元素中的文本
text-decoration    向文本添加修饰
text-indent    缩进元素中文本的首行
text-shadow    设置文本阴影
text-transform    控制元素中的字母
unicode-bidi    设置或返回文本是否被重写 
vertical-align    设置元素的垂直对齐
white-space    设置元素中空白的处理方式
word-spacing    设置字间距
View Code

CSS字体

字体样式一般分为加粗、大小、样式类型等

在CSS中,有两种类型的字体类型

  • 通用字体系列 : 拥有相似外观的字体系统组合(如 "Serif" 或 "Monospace")
  • 特定字体系列 : 一个特定的字体系列(如 "Times" 或 "Courier")

字体样式有三种情况

  • 正常:正常显示
  • 斜体:以斜体字显示
  • 倾斜的文字:文字向一侧倾斜和斜体类似,但不支持
p.normal {font-style:normal;}
p.italic {font-style:italic;}
p.oblique {font-style:oblique;}

下面是常用字体属性

font    在一个声明中设置所有的字体属性
font-family    指定文本的字体系列
font-size    指定文本的字体大小
font-style    指定文本的字体样式
font-variant    以小型大写字体或者正常字体显示文本。
font-weight    指定字体的粗细。
View Code

CSS列表

不同的列表有不同的标记类型,如下

ul.a {list-style-type: circle;}
ul.b {list-style-type: square;}

ol.c {list-style-type: upper-roman;}
ol.d {list-style-type: lower-alpha;}

CSS所有列表属性

list-style	简写属性。用于把所有用于列表的属性设置于一个声明中
list-style-image	将图象设置为列表项标志。
list-style-position	设置列表中列表项标志的位置。
list-style-type	设置列表项标志的类型。

CSS边框属性 

  • margin:            用于控制元素与元素之间的距离;margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。
  • padding:           用于控制内容与边框之间的距离;   
  • Border(边框)     围绕在内边距和内容外的边框。
  • Content(内容)   盒子的内容,显示文本和图像。

在CSS中border-style属性用来定义边框的样式 

none: 默认无边框
dotted: dotted:定义一个点线框
dashed: 定义一个虚线框
solid:  定义实线边界
double: 定义两个边界。 两个边界的宽度和border-width的值相同
groove: 定义3D沟槽边界。效果取决于边界的颜色值
ridge: 定义3D脊边界。效果取决于边界的颜色值
inset:定义一个3D的嵌入边框。效果取决于边界的颜色值
outset: 定义一个3D突出边框。 效果取决于边界的颜色值

注意 border-style四个属性值

border-style:dotted solid double dashed;
上边框是 dotted
右边框是 solid
底边框是 double
左边框是 dashed

border-style:dotted solid double;
上边框是 dotted
左、右边框是 solid
底边框是 double

border-style:dotted solid;
上、底边框是 dotted
右、左边框是 solid

border-style:dotted;
四面边框是 dotted
4个属性

下面是所有的边框的属性列表

border    简写属性,用于把针对四个边的属性设置在一个声明。
border-style    用于设置元素所有边框的样式,或者单独地为各边设置边框样式。
border-width    简写属性,用于为元素的所有边框设置宽度,或者单独地为各边边框设置宽度。
border-color    简写属性,设置元素的所有边框中可见部分的颜色,或为 4 个边分别设置颜色。
border-bottom    简写属性,用于把下边框的所有属性设置到一个声明中。
border-bottom-color    设置元素的下边框的颜色。
border-bottom-style    设置元素的下边框的样式。
border-bottom-width    设置元素的下边框的宽度。
border-left    简写属性,用于把左边框的所有属性设置到一个声明中。
border-left-color    设置元素的左边框的颜色。
border-left-style    设置元素的左边框的样式。
border-left-width    设置元素的左边框的宽度。
border-right    简写属性,用于把右边框的所有属性设置到一个声明中。
border-right-color    设置元素的右边框的颜色。
border-right-style    设置元素的右边框的样式。
border-right-width    设置元素的右边框的宽度。
border-top    简写属性,用于把上边框的所有属性设置到一个声明中。
border-top-color    设置元素的上边框的颜色。
border-top-style    设置元素的上边框的样式。
border-top-width    设置元素的上边框的宽度。
属性

CSS之display

display属性是设置一个元素如何显示,与之相似得属性visibility是设置元素的可见性

如若设置一个元素隐藏,可以通过把display属性设置为"none",或把visibility属性设置为"hidden"

另外display最重要的是可以改变块级元素和内联元素的属性,使之某个元素既具有块级元素的属性,又有内联元素的属性

下面的示例把列表项显示为内联元素:

li {display:inline;}

下面的示例把span元素作为块元素:  

span {display:block;}

CSS Position(定位) 

static定位 

HTML元素的默认值,即没有定位,元素出现在正常的流中。

静态定位的元素不会受到top, bottom, left, right影响。

Fixed定位

元素的位置相对于浏览器窗口是固定位置。

即使窗口是滚动的它也不会移动,

p.pos_fixed
{
position:fixed;
top:30px;
right:5px;
}

Relative 定位

h2.pos_left
{
position:relative;
left:-20px;
}
h2.pos_right
{
position:relative;
left:20px;
}

Absolute定位

绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>:

h2
{
position:absolute;
left:100px;
top:150px;
}

CSS Float(浮动)  

元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。浮动元素之后的元素将围绕它。浮动元素之前的元素将不会受到影响。如果图像是右浮动,下面的文本流将环绕在它左边。

常见有两种一是float设置怎样浮动,二是clear清空浮动

FLOAT:指定一个元素是否可以浮动

  • left
  • right
  • none

CLEAR:清空浮动现象

  • left :不允许左边有浮动
  • right :不允许右边有浮动
  • both :不允许两边都有浮动
  • none :默认允许两边都有浮动

  

  

  

原文地址:https://www.cnblogs.com/flash55/p/6026826.html