CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小、颜色、字体加粗等。css
声明:在英文大括号“{}”中的的就是声明,属性和值之间用英文冒号“:”分隔。当有多条声明时,中间能够英文分号“;”分隔,以下所示:html
p{ font-size:12px; color:red; }
CSS样式能够写在哪些地方呢?从CSS 样式代码插入的形式来看基本能够分为如下3种:内联式、嵌入式和外部式三种。这一小节先来说解内联式。浏览器
内联式
css样式表就是把css代码直接写在现有的HTML标签中,style="color=red"
以下面代码:编辑器
<p style="color:red">这里文字是红色。</p>
而且css样式代码要写在style=""双引号中,若是有多条css样式代码设置能够写在一块儿,中间用分号隔开。以下代码:布局
<p style="color:red;font-size:12px">这里文字是红色。</p>
嵌入式
就是把内联式css样式写在head
标签的style
标签中,其属性为type="text/css"
,具体代码以下字体
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>嵌入式css样式</title> <style type="text/css"> span{ color:red; } </style> </head>
外部式css样式(也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css
”为扩展名,在<head>
内(不是在<style>
标签内)使用<link>
标签将css样式文件连接到HTML文件内,以下面代码:ui
<link href="style.css" rel="stylesheet" type="text/css" />
三种css属性的优先级是:spa
内联式 > 嵌入式 > 外部式
code
总的来讲,css的优先级听从就近原则orm
.类选器名称{css样式代码;}
使用方法:
第一步:使用合适的标签把要修饰的内容标记起来,以下:
<span>胆小如鼠</span>
第二步:使用class="类选择器名称"为标签设置一个类,以下:
<span class="stress">胆小如鼠</span>
第三步:设置类选器css样式,以下:
.stress{color:red;}/*类前面要加入一个英文圆点*/
ID选择器都相似于类选择符,但也有一些重要的区别:
一、为标签设置id="ID名称",而不是class="类名称"。
二、ID选择符的前面是井号(#)号,而不是英文圆点(.)。
id选择器只能用一次,每一个元素只能有一个id,而类选择器能够有不少元素是同一个类,一个元素也能够同时属于多个类
先写一个类,而后用大于符号>
指向类中的某个元素,对齐设置样式表:
.food>li{ border:1px red solid; }
子选择器效果图:
把子选择器的>
符号换成空格,其与子选择器的主要区别是:包含后代的选择器会把子类中的全部符合条件的子类都改变,而子选择器只改变第一代后代,代码以下:
.food li{ border:1px solid red; }
后代选择器效果图:
通用适配符:*
,用于匹配任意样式
伪类适配符::hover
,它容许给html不存在的标签(标签的某种状态)设置样式,好比说咱们给html中一个标签元素的鼠标滑过的状态来设置字体颜色:
a:hover{color:red}
分组选择符:,
,同时为多个标签设置样式
若是对某个父类标签设置了某种样式,其子标签也会自动继承这种样式,好比你为<p>
标签设置了color=red
,那么<p>
标签包含的<span>
标签也会自动继承这个颜色样式
系统根据权重判断到底使用哪一种样式,具体来讲:继承权重为0.1,标签的权重为1,类选择符权重为10,id选择符权值为100
p{color:red;} /*权值为1*/ p span{color:green;} /*权值为1+1=2*/ .warning{color:white;} /*权值为10*/ p span.warning{color:purple;} /*权值为1+1+10=12*/ #footer .note p{color:yellow;} /*权值为100+10+1=111*/
若是遇到权重相同的状况:就近原则
设置最高权重:在分号以前加入importantp.first{color:green!important;}
,注意后代选择器是空格,p.first中间不加空格(由于不是后代),同理p#id也不加空格
font-family
属性font-size:20px
color:red
font-weight:bold
font-style:italic
text-decoration:underline
text-decoration:line-through
text-indent:2em
line-height:1.5em
letter-spacing:50px
text-align:center
使用方式以下:
<!DOCTYPE HTML> <html> <head> <style type="text/css"> body{ font-family:"微软雅黑"; font-size:20px; color:red; } </style> </head> </html>
在讲解CSS布局以前,咱们须要提早知道一些知识,在CSS中,html中的标签元素大致被分为三种不一样的类型:块状元素、内联元素(又叫行内元素)和内联块状元素。
经常使用的块状元素有:
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
经常使用的内联元素有:
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
经常使用的内联块状元素有:
<img>、<input>
什么是块级元素?在html中<div>、 <p>、<h1>、<form>、<ul> 和 <li>
就是块级元素。设置display:block
就是将元素显示为块级元素。以下代码就是将内联元素a转换为块状元素,从而使a元素具备块状元素特色。
a{display:block;}
块级元素特色:
一、每一个块级元素都重新的一行开始,而且其后的元素也另起一行。(真霸道,一个块级元素独占一行)
二、元素的高度、宽度、行高以及顶和底边距均可设置。
三、元素宽度在不设置的状况下,是它自己父容器的100%(和父元素的宽度一致),除非设定一个宽度。
在html中,<span>、<a>、<label>、 <strong> 和<em>
就是典型的内联元素(行内元素)(inline)元素。固然块状元素也能够经过代码display:inline
将元素设置为内联元素。以下代码就是将块状元素div转换为内联元素,从而使 div 元素具备内联元素特色。
div{ display:inline; } ...... <div>我要变成内联元素</div>
内联元素特色:
一、和其余元素都在一行上;
二、元素的高度、宽度及顶部和底部边距不可设置;
三、元素的宽度就是它包含的文字或图片的宽度,不可改变。
内联块状元素(inline-block)就是同时具有内联元素、块状元素的特色,代码display:inline-block
就是将元素设置为内联块状元素。(css2.1新增),<img>、<input>
标签就是这种内联块状标签。
inline-block 元素特色:
一、和其余元素都在一行上;
二、元素的高度、宽度、行高以及顶和底边距均可设置。
div
padding
,一共四个方向,padding-top
,padding-bottom
,padding-left
,padding-right
margin
border
盒子模型的边框就是围绕着内容及补白的线,这条线你能够设置它的粗细、样式和颜色(边框三个属性)。
以下面代码为 div 来设置边框粗细为 2px、样式为实心的、颜色为红色的边框:
div{ border:2px dotted red; }
上面是 border 代码的缩写形式,能够分开写:
div{ border-width:2px; border-style:dotted;/*虚线*/ border-color:red; }
也能够单独为一边设置边框
div{ border-bottom:2px dotted red; }
宽度和高度分别使用width
和height
来表示
元素与边框之间的距离用padding
,其设置的顺序为:上,右,下,左(顺时针)
CSS包含3种基本的布局模型,用英文归纳为:Flow、Layer 和 Float。
在网页中,元素有三种布局模型:
流动模型是默认的网页布局模式,2个典型特征:
清除浮动:①clear:both ② width:100%,overflow:hidden
块状元素这么霸道都是独占一行,若是如今咱们想让两个块状元素并排显示,怎么办呢?不要着急,设置元素浮动就能够实现这一愿望。使用float
属性设置浮动:
div{ width:200px; height:200px; border:2px red solid; float:left; } <div id="div1"></div> <div id="div2"></div>
什么是层布局模型?层布局模型就像是图像软件PhotoShop中很是流行的图层编辑功能同样,每一个图层可以精肯定位操做。
CSS定义了一组定位(positioning)属性来支持层布局模型。层模型有三种形式:
一、绝对定位(position: absolute)
加入position:absolute
div{ width:200px; height:200px; border:2px red solid; position:absolute; left:100px; top:50px; } <div id="div1"></div>
二、相对定位(position: relative)
absolute心口如一,移动了就是移动了。relative只是表面显示移动了,但实际还在文档流中原有位置,别的元素没法占据。若是想为元素设置层模型中的相对定位,须要设置position:relative
(表示相对定位),它经过left、right、top、bottom属性肯定元素在正常文档流中的偏移位置
三、固定定位(position: fixed)
fixed:表示固定定位,与absolute定位类型相似,但它的相对移动的坐标是视图(屏幕内的网页窗口)自己。因为视图自己是固定的,它不会随浏览器窗口的滚动条滚动而变化,所以固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同
必须相对于父辈元素进行定位:在父辈元素加position:relative
,须要进项相对的加position:absolute
一般有下面三种缩写方法:
一、若是top、right、bottom、left的值相同,以下面代码:
margin:10px 10px 10px 10px;
可缩写为:
margin:10px;
二、若是top和bottom值相同、left和 right的值相同,以下面代码:
margin:10px 20px 10px 20px;
可缩写为:
margin:10px 20px;
三、若是left和right的值相同,以下面代码:
margin:10px 20px 30px 20px;
可缩写为:
margin:10px 20px 30px;
关于颜色的css样式也是能够缩写的,当你设置的颜色是16进制的色彩值时,若是每两位的值相同,能够缩写一半。
例子1:
p{color:#000000;}
能够缩写为:
p{color: #000;}
例子2:
p{color: #336699;}
能够缩写为:
p{color: #369;}
网页中的字体css样式代码也有他本身的缩写方式,下面是给网页设置字体的代码:
body{ font-style:italic; font-variant:small-caps; font-weight:bold; font-size:12px; line-height:1.5em; font-family:"宋体",sans-serif; }
这么多行的代码其实能够缩写为一句:
body{ font:italic small-caps bold 12px/1.5em "宋体",sans-serif; }
注意:
一、使用这一简写方式你至少要指定 font-size 和 font-family 属性,其余的属性(如 font-weight、font-style、font-variant、line-height)如未指定将自动使用默认值。
二、在缩写时 font-size 与 line-height 中间要加入“/”斜扛。
颜色值有3中设置方式:
英文命令颜色
p{color:red;}
RGB颜色
p{color:RGB(133,45,200)
十六进制颜色
p{color:#00ffff}
p{font-size:12px;line-height:130%}
p{text-align:center;}
div{margn:20px auto;}
不定宽度的块状元素有三种方法居中(这三种方法目前使用的都不少):
设置height
和line-height
值同样
<style> .container{ height:100px; line-height:100px; background:#999; } </style>
父元素高度肯定的多行文本、图片等的竖直居中的方法有两种:
简单来讲,只要html代码中出现以上两句之一,元素的display显示类型就会自动变为以 display:inline-block
(块状元素)的方式显示,固然就能够设置元素的 width 和 height 了,且默认宽度不占满父元素。