css教程

CSS定义

CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小、颜色、字体加粗等。css

css语法格式

声明:在英文大括号“{}”中的的就是声明,属性和值之间用英文冒号“:”分隔。当有多条声明时,中间能够英文分号“;”分隔,以下所示:html

p{
  font-size:12px;
  color:red;
}

CSS 类型

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="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-toppadding-bottompadding-leftpadding-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;
}

宽度和高度

宽度和高度分别使用widthheight来表示

填充

元素与边框之间的距离用padding,其设置的顺序为:上,右,下,左(顺时针)

CSS布局模型

CSS包含3种基本的布局模型,用英文归纳为:Flow、Layer 和 Float。
在网页中,元素有三种布局模型:

  1. 流动模型(Flow)
  2. 浮动模型 (Float)
  3. 层模型(Layer)

流动模型

流动模型是默认的网页布局模式,2个典型特征:

  1. 块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,由于在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。如右侧代码编辑器中三个块状元素标签(div,h1,p)宽度显示为100%。
  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中设置方式:

  1. 英文命令颜色
    p{color:red;}

  2. RGB颜色

    p{color:RGB(133,45,200)

  3. 十六进制颜色

    p{color:#00ffff}

长度值

  1. 像素px
  2. 字体大小em:就是本元素的字体大小,好比字体大小为14px,那么em大小就位14px
  3. 百分比:p{font-size:12px;line-height:130%}

CSS样式设置小技巧

设置居中

p{text-align:center;}

定宽块状元素居中

div{margn:20px auto;}

不定宽度的块状元素有三种方法居中(这三种方法目前使用的都不少):

  1. 加入 table 标签
  2. 设置 display: inline 方法:与第一种相似,显示类型设为 行内元素,进行不定宽元素的属性设置
  3. 设置 position:relative 和 left:50%:利用 相对定位 的方式,将元素向左偏移 50% ,即达到居中的目的
    方法三:经过给父元素设置float,而后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left: -50% 来实现水平居中。

垂直居中

设置heightline-height值同样

<style>
.container{
    height:100px;
    line-height:100px;
    background:#999;
}
</style>

父元素高度肯定的多行文本、图片等的竖直居中的方法有两种:

  1. 使用插入 table (包括tbody、tr、td)标签,同时设置 vertical-align:middle。
  2. 设置块级元素的 display 为 table-cell(设置为表格单元显示),激活 vertical-align 属性,但注意 IE六、7 并不支持这个样式, 兼容性比较差。

隐性改变display类型

  1. position : absolute
  2. float : left 或 float:right

简单来讲,只要html代码中出现以上两句之一,元素的display显示类型就会自动变为以 display:inline-block块状元素)的方式显示,固然就能够设置元素的 width 和 height 了,且默认宽度不占满父元素。

相关文章
相关标签/搜索