CSS入门学习笔记

学校开了Div+CSS课程,做个笔记记录

慢慢更新吧。。。

Html和CSS的关系

学习web前端开发基础技术需要掌握:HTML、CSS、JavaScript语言。

  1. HTML是网页内容的载体。
  2. CSS样式是表现。
  3. JavaScript是用来实现网页上的特效效果。

CSS全称为    “层叠样式表 (Cascading Style Sheets)”

CSS代码语法

CSS 样式由选择符(器)和声明组成,而声明又由属性和值组成

/*CSS注释文本*/

内联式css样式

就是把css代码直接写在现有的HTML标签中,使用style属性

嵌入式css样式

就是把css样式代码写在<style type="text/css"></style>标签之间。

外部式css样式

就是把css代码写一个单独的外部文件中,以*.css为扩展名,在<head>标签内,使用 <link href="/path/" rel="stylesheet" type="text/css" />标签引入

三种方法的优先级

内联式>嵌入式>外部式(就近原则)

选择器{样式;}

标签选择器

标签名称{css样式代码;}

类选择器

.类选器名称{css样式代码;}
标签需要class="类选器名称 "属性定义

ID选择器

#id名称{样式;}
标签需要id="id选择器名称 "属性定义

类和ID选择器的区别

ID选择器只能在文档中使用一次。

子选择器

标签1>标签2{样式;}
就是让标签1下的子元素标签2使用样式
这个是直接后代(第一代)

包含(后代)选择器

包含选择器,即加入空格,用于选择指定标签元素下的后辈元素。

标签1>标签2{样式;}
就是让标签1下的所有子元素标签2使用样式
这个是所有后代

通用选择器

通用选择器是功能最强大的选择器,它使用一个(*)号指定,它的作用是匹配html中所有标签元素

* {样式;}

伪类选择符

允许给html不存在的标签(标签的某种状态)设置样式

给html中一个标签元素的鼠标滑过的状态来设置字体颜色:

a:hover{color:red;}

分组选择符

标签1,标签2{样式;}
为多个标签元素设置同一个样式

继承

CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。

p{color:red;}

<p><span>胆小如鼠</span>的小孩。</p>

可见右侧结果窗口中p中的文本与span中的文本都设置为了红色。但注意有一些css样式是不具有继承性的。如border:1px solid red;

特殊性

因为浏览器是根据权值来判断使用哪种css样式的,权值高的就使用哪种css样式。

标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。

注意:还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。

层叠

层叠就是同一个元素有多个css样式存在并且这多个css样式具有相同权重值时, 会根据这些css样式的前后顺序来决定,处于最后面的css样式会被应用。

重要性

有些特殊的情况需要为某些样式设置具有最高权值,怎么办?这时候我们可以使用!important来解决。

p{color:red!important;}

注意样式优先级为:浏览器默认的样式 < 网页制作者样式 < 用户自己设置的样式,但记住!important优先级样式是个例外,权值高于用户自己设置的样式。

格式化排版

body{
 font-family:"宋体";/*设置字体*/
 font-size:12px;color:#666;/*设置字号,颜色*/
     font-weight:bold;/*设置粗体*/
 font-style:italic; /*设置斜体*/
 text-decoration:underline;/*设置下划线*/
 text-decoration:line-through;/*设置删除线*/
 text-indent:2em;/*设置缩进*/
 line-height:2em;/*设置行间距(行高)*/
 letter-spacing:20px;/*设置中文字,字母间距*/
 word-spacing:50px;/*设置单词之间的间距*/
}

段落排版--对齐

块状元素中的文本、图片设置居中样式,可以使用text-align样式代码

text-align:center|left|right;

元素分类

在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就是将元素显示为块级元素。

块级元素特点:

  1. 个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)

  2. 元素的高度、宽度、行高以及顶和底边距都可设置。

  3. 元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。

元素分类--内联元素

在html中,<span>、<a>、<label>、 <strong><em>就是典型的内联元素(行内元素)(inline)元素。当然块状元素也可以通过代码display:inline将元素设置为内联元素。

内联元素特点:

  1. 和其他元素都在一行上;

  2. 元素的高度、宽度及顶部和底部边距不可设置;

  3. 元素的宽度就是它包含的文字或图片的宽度,不可改变。

元素分类--内联块状元素

内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点,代码display:inline-block就是将元素设置为内联块状元素。(css2.1新增),<img>、<input>标签就是这种内联块状标签。

inline-block 元素特点:

  1. 和其他元素都在一行上;

  2. 元素的高度、宽度、行高以及顶和底边距都可设置。

盒模型--边框

(一)

盒子模型的边框就是围绕着内容补白的线,这条线你可以设置它的粗细样式颜色(边框三个属性)。

  1. border-style(边框样式)常见样式有:dashed(虚线)| dotted(点线)| solid(实线)。

  2. border-color(边框颜色)中的颜色可设置为十六进制颜色。

  3. border-width(边框宽度)中的宽度也可以设置为:thin | medium | thick(但不是很常用),最常还是用象素(px)。

(二)

想为 标签单独设置下边框,而其它三边都不设置边框样式。可以用border-bottom: 1px dotted #ccc;来设置,其他边框一样。

盒模型--宽度和高度

css内定义的宽(width)和高(height),指的是填充以里的内容范围。
因此一个元素实际宽度(盒子的宽度)=左边界+左边框+左填充+内容宽度+右填充+右边框+右边界。高度同理。

盒模型--填充

元素内容边框之间是可以设置距离的,称之为“填充”。填充也可分为上、右、下、左(顺时针)。

div{
 padding:20px 10px 15px 30px;
 padding-top|right|bottom|left/*也可以用*/
 padding:20px 10px;/*设置上下20px,左右10px*/
 padding:10px,20px,30px;/*左右一样,上为10px,左右为20px,下为30px*/
}

盒模型--边界

元素与其它元素之间的距离可以使用边界(margin)来设置。边界也是可分为上、右、下、左。

div{
 margin:20px 10px 15px 30px;
     margin-top|right|bottom|left/*也可以用*/
     margin:20px 10px;/*设置上下20px,左右10px*/
     margin:10px,20px,30px;/*左右一样,上为10px,左右为20px,下为30px*/
}

总结一下:padding和margin的区别,padding在边框里,margin在边框外。

css布局模型

CSS包含3种基本的布局模型,用英文概括为:Flow、Layer 和 Float。

在网页中,元素有三种布局模型:

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

流动模型

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

  2. 在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。(内联元素可不像块状元素这么霸道独占一行)

浮动模型

块状元素这么霸道都是独占一行, 设置元素浮动就可以实现两个块状元素并排显示 ,任何元素在默认情况下是不能浮动的,但可以用 CSS 定义为浮动,如 div、p、table、img 等元素都可以被定义为浮动。

float:left|right;

层模型

层布局模型就像是图像软件PhotoShop中非常流行的图层编辑功能一样,每个图层能够精确定位操作,CSS定义了一组定位(positioning)属性来支持层布局模型。

层模型有三种形式:

  1. 绝对定位(position: absolute)
    将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口

  2. 相对定位(position: relative)
    通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动

  3. 固定定位(position: fixed)
    fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。

Relative与Absolute组合使用

使用position:absolute可以实现被设置元素相对于浏览器(body)设置定位, 相对于其它元素进行定位,可以使用position:relative,但是要注意:

  1. 参照定位的元素必须是相对定位元素的前辈元素;
  2. 参照定位的元素必须加入position:relative;
  3. 定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。

字体缩写

  1. 使用这一简写方式你至少要指定 font-size 和 font-family 属性,其他的属性(如 font-weight、font-style、font-varient、line-height)如未指定将自动使用默认值。

  2. 在缩写时 font-size 与 line-height 中间要加入“/”斜扛。
    对于中文网站常用:

 ```body{
font:12px/1.5em  "宋体",sans-serif;`
}```

只是有字号、行间距、中文字体、英文字体设置。

颜色缩写

有字体颜色(color)、背景颜色(background-color)、边框颜色(border);
可以用颜色的英文单词表示,也可以用#16进制码表示,还有RGB值(red,green,blue);
#336699,#000000可以简化为#369,#000

长度值

常用到px(像素)、em、% 百分比,要注意其实这三种单位都是相对单位。

  1. 像素 指的是显示器上的小点(CSS规范中假设“90像素=1英寸”);
  1. em 就是本元素给定字体的 font-size 值, 如果元素的 font-size 为 14px ,那么 1em = 14px;
    但当给 font-size 设置单位为 em 时,此时计算的标准以 p 的父元素的 font-size 为基础;
  1. 百分比
```p{font-size:12px;line-height:130%}```

设置行高(行间距)为字体的130%(12 * 1.3 = 15.6px)。

水平居中设置-行内元素

如果被设置元素为文本图片行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的。

水平居中设置-定宽块状元素

当被设置元素为块状元素时用 text-align:center 就不起作用了,这时也分两种情况:定宽块状元素不定宽块状元素。这一小节我们先来讲一讲定宽块状元素。

满足定宽块状两个条件的元素是可以通过设置“左右margin”值为“auto”来实现居中的。

水平居中总结-不定宽块状元素方法(一)

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

  1. 加入 table 标签

  2. 设置 display;inline 方法

  3. 设置 position:relative 和 left:50%;

第二种方法:改变块级元素的 display 为 inline 类型,然后使用 text-align:center 来实现居中效果。

方法三:通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:-50% 来实现水平居中。

垂直居中-父元素高度确定的单行文本

父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 heightline-height 高度一致来实现的。

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

方法一:使用插入 table (包括tbody、tr、td)标签,同时设置 vertical-align:middle。css 中有一个用于竖直居中的属性 vertical-align,但这个样式只有在父元素为 td 或 th 时,才会生效。所以又要插入 table 标签了。

方法二: 在 chrome、firefox 及 IE8 以上的浏览器下可以设置块级元素的 display 为 table-cell,激活 vertical-align 属性,但注意 IE6、7 并不支持这个样式。

隐性改变display类型

当为元素(不论之前是什么类型元素,display:none 除外)设置以下 2 个句之一:

  1. position : absolute

  2. float : left 或 float:right

元素会自动变为以 display:inline-block 的方式显示,当然就可以设置元素的 width 和 height 了且默认宽度不占满父元素。

慢慢的更新吧。。。

最后由 不一样的少年 编辑于2016年05月17日 11:02