HTML+CSS基础小笔记再整理

1、

font的两个必须要写的:font-size 和 font-family

text-indent 首行缩进(em)1em=一个文字大小

text-algin 对齐方式:left、center、right

text-decortion 文本修饰: underline(下划线)overline(上划线)line-through(删除线)none(无)

letter-spacing 字间距(为0时字间距本身为1个像素,若为5px则字间距实际为6px)

word-spacing 词间距(先用空格将词组分开,否则没效果,注意空格也占几个像素)

line-height:行高,字的顶部到下一行字的顶部的像素


2、<a> href:

超链接 <a href="xxx.html">跳转页面</a>

压缩包下载:<a href=“xxx.rar">压缩包下载</a>

锚点(id):<a href="#div1">跳转指定id位置</a>

eg:<a href="http://sohu.com/#sogou-search">直接跳到搜狐页面的指定id位置</a>


3、base:写在<head></head>之间

<base target="_blank" href="www.baidu.com"> 指定文档中所有<a>标签的默认


4、常用标签

section 版块 用于划分页面上的不同区域,或者划分文章里不同的节

header 页面头部或者版块(section)头

footer 页面底部或者(section)底部

<header></header>

<section>

<header></header>

<footer></footer>

</section>

<footer></footer>

nav 导航 (包含链接的的一个列表)<nav></nav>

article 用来在页面中表示一套结构完整且独立的内容部分.可以用来呈现论坛的一个帖子,

杂志或报纸中的一篇文章,一篇博客,用户提交的评论内容,可互动的页面模块挂件等。<article></article>

aside 元素标签可以包含与当前页面或主要内容相关的引用、侧边栏、广告、nav元素组,

以及其他类似的有别与主要内容的部分 <aside></aside>

1)被包含在<article>中作为主要内容的附属信息部分,其中的内容 以是与当前文章有关的引用、词汇列表等

2)在<article>之外使用,作为页面或站点全局的附属信息部分;最典型的形式是侧边栏(sidebar),

其中的内容可以是友情链接、附属导航或广告单元等。

time 里面写时间 <time></time>


5、文件路径:

绝对路径:完整的固定的路径地址、网站地址

相对路径:以当前页面的地址为对象来表示路径地址


6、搜索引擎通过标签来判断用户搜索内容---标签语义化

SEM 搜索引擎营销

SEO 搜索引擎优化


7、css选择器的优先级

选择器的优先级一致的情况下,后面的会覆盖前面相同的属性

!import > 行间样式style > id选择器 > class选择器 > 类型tag选择器 > 通配符* > 默认

包含(父子)选择器 > 单个选择器 = 群组选择器

内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中)



8、块元素和内嵌(内联、行内)元素:

块:

1)默认独占一行

2)支持所有css样式

3)不设置宽度的时候,宽度默认撑满整行

内嵌:

1)同一行上可以显示同类的标签

2)不支持宽高

3)不支持上下的margin和padding样式

4)宽高由内容撑开

5)代码换行会被解析成空格

想让内联元素具备块元素特征:display:block;

想让块元素具备内敛元素特征:display:inline;

想让元素既支持内敛也支持块元素特征:display:inline-block;

内敛块:

1)块元素能在一行显示

2)行内元素支持宽高

3)没有宽度的时候内容撑开宽度

4)标签之间的换行间隙被解析成空格

5)ie6 ie7不支持块属性标签的inline-block


9.浮动:

float:left | right | none | inherit;

文档流是文档中可显示对象在排列时所占用的位置。

浮动的定义:使元素脱离文档流,按照指定方向发生移动,遇到父级边界或者相邻的浮动元素停下来。

clear:left | right | both | none | inherit;指定元素的某个方向上不能有浮动元素

clear:both; 在左右两侧均不允许浮动元素。

float特征:

1)块在一排显示

2)内联支持宽高

3)默认内容撑开宽度

4)脱离文档流

5)提升层级半层


10.清除浮动的方法

1)加高:给父级元素一个高度,缺点是扩展性不好,若高度不固定,加高清除失效

2)父级浮动:给各类父级元素设置float,问题是页面中所有元素都要加浮动,而且margin左右auto居中失效

3)inline-block方法:给父级加display:inline-block; 问题是导致margin左右auto失效

4)空标签清除浮动:在浮动元素同级位置加一个空标签<div class="clearfix"></div> css: .clearfix{clear:both;}

问题:IE6 最小高度 19px;(解决后IE6下还有2px偏差) ,每个浮动元素后都要加空标签

5)br清除浮动:浮动元素后加 <br clear="all"/> 问题:不符合工作中结构、样式、行为,三者分离的要求。每个浮动元素后都要加

6)after伪类清浮动方法(现在主流方法) :给浮动元素的父级添加一个clear类,并设置css样式为:

.clear:after{content:‘‘;display:block;clear:both;} .clear{zoom:1;} (zoom兼容ie6、ie7)

after伪类: 元素内部末尾添加内容;

:after{content"添加的内容";} IE6,7下不兼容

zoom 缩放

a、触发 IE下 haslayout,使元素根据自身内容计算宽高。

b、FF 不支持

7)overflow:hidden; 清除浮动:给父级元素加。 问题:需要配合 宽度 或者 zoom 兼容IE6 IE7;

overflow: scroll | auto | hidden;overflow:hidden;溢出隐藏


11、定位position:relative | absolute | fixed | static | inherit;

1)relative相对定位/定位偏移量position:relative; 特征

a、不影响元素本身的特性;

b、不使元素脱离文档流(元素移动之后原始位置会被保留);

c、如果没有定位偏移量,对元素本身没有任何影响;

d、提升层级

定位元素位置控制 top/right/bottom/left 定位元素偏移量。

2)absolute绝对定位/定位层级position:absolute; 特征

a、使元素完全脱离文档流;(原始位置消失,元素相当于隐形了)

b、使内嵌支持宽高;

c、块属性标签内容撑开宽度;

d、如果有定位父级相对于定位父级发生偏移,没有定位父级相对于document发生偏移;

e、相对定位一般都是配合绝对定位元素使用;

f、提升层级

z-index:[number]; 定位层级

a、定位元素默认后者层级高于前者;

b、建议在兄弟标签之间比较层级

eg:z-index:1; 向前提升一个层级,

z-index:[number]; 定位层级

3)fixed 固定定位:

与绝对定位的特性基本一致,的差别是始终相对整个文档进行定位; 问题:IE6不支持固定定位;


12、透明度

标准浏览器:opacity:0-1;

IE6、7下:filter:alpha(opacity=0-100)


13、表格样式重置

table{border-collapse:collapse;} 单元格间隙合并

th,td{padding:0;}重置单元格默认填充

合并单元格

colspan 属性规定单元格可横跨的列数。 <td colspan="2"></td>

rowspan 属性规定单元格可横跨的行数。 <td rowspan="2"></td>


14、兼容(标准浏览器一般都兼容,主要看IE6、7)

1)H5兼容 IE6、IE7不支持H5标签,解决方案:需将h5标签变成block元素,后用js创建标签 (document.createElement("section"))

若含有很多h5标签,引用 html5shiv.js 文件解决。

2)元素浮动之后,能设置宽度的话就给元素加宽度.如果需要宽度是内容撑开,就给它里边的块元素加上浮动;

3)第一块元素浮动,第二块元素加margin值等于第一块元素,在IE6下会有一条空隙问题; 解决方案:第二块元素要用浮动float。

4)IE6下子元素超出父级宽高,会把父级的宽高撑开 。解决方案:子元素宽高不要超过父级元素宽高!

5)<p><h1-6><td>包含块元素嵌套规则,块元素在所有浏览器中不被这三个标签包含,直接变成同级关系。

6)margin兼容性问题,上下margin叠压问题,解决方案是避免多个元素上下margin同时存在,只使用一个方向的margin。

在浏览器中子元素margin-top会传递给父级元素,解决方案是触发BFC和haslayout

给父元素加overflow:hidden;触发BFC 。 给父元素加zoom:1;触发haslayout

BFC (block formatting context) 标准浏览器 :

a、float的值不为none。

b、overflow的值不为visible。

c、display的值为table-cell, table-caption, inline-block中的任何一个。

d、position的值不为relative和static。

e、width|height|min-width|min-height:(!aotu)

haslayout IE浏览器 :

a、writing-mode:tb-rl

b、-ms-writing-mode:tb-rl

c、zoom:(!normal)

7)display:inline-block兼容 IE6下不支持。解决方案:使用css hack(*)。在display:inline-block;后加上*display:inline; *zoom:1;

8)IE6最小高度问题。height:1px;在IE6下最小高度不是1px是19px; 解决方案:*overflow:hidden;

9)IE6双边距。在设置了float:left后设置margin-left会导致双边距现象;比如float:left;margin-left:50px;在IE6下会距离左边100px。

解决方案:针对IE6,添加 *display:inline;

10)li子元素都浮动的情况下,li下方会产生4px间隙。解决方案:给li添加 *vertical-align:top;

11)两个浮动元素中间有注释或者内联元素并且和父级宽度相差不超过3px时会出现溢出文字的情况

解决方案:两个浮动元素中间避免出现内联元素或者注释 或者 与父级宽度相差3px或以上

12)IE6\7下父元素overflow:hidden;包不住子元素的relative相对定位

解决方案:针对ie6、7给父级元素添加相对定位 *position:relative;

13)IE6下绝对定位元素的父级元素宽高是奇数,绝对定位元素设置的right和bottom值会有1px的偏差 。

解决方案:避免父级宽高出现奇数

14)IE6下绝对定位元素和浮动元素并列绝对定位元素消失 。解决方案:避免在同一级,可以用<p>包住内敛元素。

15)IE6下input会有上下1px空隙问题 。解决方案:给input添加 *float:left;

16)IE6下输入类型表单控件随输入内容增加,背景图片不固定的问题。解决:设置background-attachment:fixed;

CSS hack:针对不同的浏览器写不同的CSS 样式的过程,就叫CSS hack!

div{

width: 200px;

height: 200px;

background-color: red

background-color: blue\9;

*background-color: green;

_background-color: yellow;

}

书写顺序,从上到下范围依次减小。

\9 IE10以及IE10以下版本的

* IE7以及IE7以下版本的

_ IE6以及IE6以下版本的

17)PNG24 兼容性问题:IE6不支持PNG24,出现背景。

解决方案:

使用PNG8

或者:

JS插件:DD_belatedPNG_0.0.8a.js(问题:不能处理body之上png24) ;执行js插件中的函数:DD_belatedPNG.fix(‘xxx‘);

原生滤镜:在body样式添加这两句:

_background-image:none;

_filter : progid:DXImageTransform.Microsoft.AlphaImageLoader(src="XX.png", sizingMethod="crop");

兼容IE代码:

<!--[if !IE 7]>

<style type="text/css">

#wrap {display:table;height:100%}

</style>

< ![endif]-->



零散知识点

background-position:-70px -40px;

图片以容器左上角为参考向左偏移70px,向上偏移 40px,即图片的左边70px和上边的40px都在容器之外,容器内只显示剩下的部分。为负数是向右下。


css盒模型:

标准 w3c 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分。

ie 盒子模型的范围也包括 margin、border、padding、content,和标准 w3c 盒子模型不同的是:ie 盒子模型的 content 部分包含了 border 和 padding。

例:一个盒子的 margin 为 20px,border 为 1px,padding 为 10px,content 的宽为 200px、高为 50px。

用标准 w3c 盒子模型(也包括ie7以上)解释:

那么这个盒子需要占据的位置为:宽 20*2+1*2+10*2+200=262px、高 20*2+1*2*10*2+50=112px。

盒子的实际大小(有背景颜色的区域)为:宽 1*2+10*2+200=222px、高 1*2+10*2+50=72px。

用ie 6及其以下盒子模型:

那么这个盒子需要占据的位置为:宽 20*2+200=240px、高 20*2+50=70px

盒子的实际大小为:宽 200px、高 50px。

时间: 2024-12-14 03:00:44

HTML+CSS基础小笔记再整理的相关文章

HTML&CSS基础学习笔记2-Html的全局属性

HTML元素都有属性,下面的这些全局属性是所有的HTML元素都可以使用的. 常见的有: HTML元素也有一些本身自己独特的属性,我们以后的笔记中有机会,会再为大家介绍哦. 下面是代码测验,更多体验学习,可前往码芽网哦http://www.mayacoder.com/lesson/index HTML&CSS基础学习笔记2-Html的全局属性

css通用小笔记03——浏览器窗口变小 div错位的问题

我最近写网页的时候,经常碰到一个普遍的问题,经过我的查阅和尝试,终于解决了这一问题,这里有两种方法提供给大家,如果博友还有更好的方法,欢迎补充. 一.使用min-width属性: 我们先看看下面这段代码(html): 1 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 2 <head> 3 <title>无标题文档</

HTML&CSS基础学习笔记8-预格式文本

<pre>标签的主要作用是预格式化文本.被包围在 pre 标签中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre>标签的一个常见应用就是用来表示计算机的源代码.当然你也可以在你需要在网页中预显示格式时使用它. 会使你的文本换行的标签(例如<h>.<p>)绝不能包含在 <pre> 所定义的块里.尽管有些浏览器会把段落结束标签解释为简单地换行,但是这种行为在所有浏览器上并不都是一样的. 更多学习内容,就在码芽网http://www.

HTML&CSS基础学习笔记13—无序列表

无序列表 有时我们的工作繁忙,杂事很多,怕忘记,就会把事情一件件列出来,防止忘记. 它们的排列顺序对于我们来说并不重要,可以随意调换,我们将它称为无序列表,HTML里用<ul>标签来表示无序列表,列表里的项目则用<li>标签来表示: 1 2 3 4 5 <ul>     <li></li>     <li></li>     ... </ul> 看一段实例代码: 对于的浏览器显示结果是这样的: 更多内容学习,请

css通用小笔记02——浮动、清除(三个例子)

css中通常会用到浮动与清除,也是一个必须掌握的知识点,概念性的东西不多说,下面举几个例子,来说明它的用法:1.文字环绕效果  2.多个div并排显示 3.清除浮动(默认显示) 一.文字环绕效果: html代码如下: 1 <body> 2 3 <style type="text/css"> 4 #big img {float: left;padding: 10px;border: 1px solid red;} 5 #big span {font-size: 2

HTML&CSS基础学习笔记15-合并单元格

合并单元格 之前的文章中,我们已经能够创建一个简单地表格了,如果我们需要把横向的某两个相邻单元格<td>或者纵向的某两个相邻单元格<td>合并,我们该怎么做呢?我们要知道的知识点如下: 1.标签<td>的[colspan]属性规定单元格可横跨的列数,即横向合并的单元格数: 2.标签<td>的[rowspan] 属性规定单元格可横跨的行数,即纵向合并的单元格数: 3.这2个标签也可以同时使用. 样式示例: 现在就来试试合并单元格吧: <!DOCTYPE 

HTML&CSS基础学习笔记7-高亮文本及组合使用

HTML提供了<mark>标签可以让你的文本高亮,这样看起来更加醒目.<mark>标签内的文本会呈现特殊的样式,它和<em>,<strong>一样也是一个带有语义的标签. 代码如下: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>高亮文本</title><

HTML&CSS基础学习笔记4-定义文档类型

定义HTML的文档类型 Web 世界中存在许多不同的文档.只有了解文档的类型,浏览器才能正确地显示文档. HTML 也有多个不同的版本,只有完全明白页面中使用的确切 HTML 版本,浏览器才能完全正确地显示出 HTML 页面.这就是 <!DOCTYPE> 的用处. <!DOCTYPE> 声明不是 HTML 标签,它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令.是一种标准通用标记语言的文档类型声明,它的目的是要告诉标准通用置标语言解析器,它应该使用什么样的文档

HTML&CSS基础学习笔记14—有序列表及列表嵌套

我们上篇讲到了无序列表,那么今天就来看看有序列表和他们的组合嵌套使用吧. 有序列表 现在我们要做那堆杂事了,但是发现这么多杂事,先做哪个好呢?于是我们给这堆杂事弄个优先级排序,让我们能够按照顺序做下去.HTML里用<ol>标签来表示有序列表,<ol>标签的列表项依然是用<li>标签表示. 它的代码模板是这样的: <span style="font-family:Microsoft YaHei;"><ol>       <