1. 网页组织的两种常用方式
o 表格套表格方式定义网页结构 -- 目前不再是主流,只在一些结构简单的页面中有所使用
o DIV+CSS方式定义网页结构 -- 目前主流的网页开发方式,可以非常灵活的定义网页
2. 容器标签---div
本身没有任何特殊的能力,最主要的功能是用来包含其他标签组成一个整体。
常见的容器标签: div span p
<div> 是一个块级元素。这意味着它的内容自动地开始一个新行,每个元素独占一行。
<span>是一个行内元素。多个行内元素不会要求独占一行
<p> 是一个块级元素。用来声明一个段落。会在当前段落前后 多出额外的空行。
3. CSS 的概念
CSS:层叠样式表
实现了网页中数据和样式的分离,使网页结构更加明细,解决了样式重复定义的问题,提高了开发效率和后期代码的可维护性,另外还增强了网页的美化能力。
页面中的多个元素都系要进行相同的样式修改,若是一个一个修改则会造成代码的冗余和维护的不便性。
~css中的注释只有一种:/* */
4. css的四种引入方式
方式一:通过style属性指定元素的样式
<p style="background-color:#FF0000; color:#FFFFFF">
p标签段落内容。
</p>
方式二:通过<style>定义样式,可以在html的<head>标签中定义<style>标签,在其中为当前页面设定样式。
<head>
<style type=”text/css”>
p { color:#FF0000;}
</style>
</head>
方式三:引入外部样式文件。可以在html的<head>标签中定义<link>标签,引入外部的css文件来修饰当前页面。
<link rel="stylesheet" href="css.css" >
方式四:可以通过@import url(xxx.css) 在css的内部引入一个css文件中定义的css样式片段。可以实现css代码的引入从而实现css代码的复用。
<style type="text/css">
@import url(div.css); 引入和样式之间要加上;做分隔!
div { color:#FF0000;}
</style>
如果有多种方式为同一个元素设定了样式,则样式起作用的原则是:由上到下,由外到内,优先级由低到高。(编辑样式的代码哪个离标签近哪个有效),但是选择器选择的标签越具体优先级越高 详情请看3.CSS的优先级
css基本选择器
元素(标签)名选择器:
通过html标签的名字来选择标签的选择器
元素(标签)名{}
div{
color:red;
}
*{
Color:red;
}
类选择器:
html的所有标签都具有一个通用的属性叫做class,通过它可以为标签指定类名,通过类选择器可以选择指定类名的元素。
.类名{}
.aaa{
color:red;
}
<div class=”aaa”>hahahaha</div>
单独设置样式
<tt class="tt1">
3. id选择器:
html的所有标签都具有一个通用的属性叫做id,通过它可以为标签指定id,id必须在整个html中唯一。通过id选择器可以选择出指定id的元素。
#id{}
#bbb{
color:red;
}
<div id=”bbb”>hehehe</div>
6. css扩展选择器
1. 后代选择器
选择父元素中的后代元素.
父元素选择器 后代元素选择器{}
p { color:#00FF00;}
p b { color:#FF000;}
<p>P标签<b>刘德华</b><a href=”#”><b>段落</b>样式</a></p>
<p>P标签段落</p>
有关后代选择器有一个易被忽视的方面,即两个元素之间的层次间隔可以是无限的。
例如,如果写作 ul em,这个语法就会选择从 ul 元素继承的所有 em 元素,而不论 em 的嵌套层次多深。
因此,ul em 将会选择以下标记中的所有 em 元素:
<ul>
<li>List item 1
<ol>
<li>List item 1-1</li>
<li>List item 1-2</li>
<li>List item 1-3
<ol>
<li>List item 1-3-1</li>
<li>List item <em>1-3-2</em></li>
<li>List item 1-3-3</li>
</ol>
</li>
<li>List item 1-4</li>
</ol>
</li>
<li>List item 2</li>
<li>List item 3</li>
</ul>
2. 子元素选择器
如果您不希望选择任意的后代元素,而是希望缩小范围,只选择某个元素的子元素,请使用子元素选择器(Child selector)。
例如,如果您希望选择只作为 h1 元素子元素的 strong 元素,可以这样写:
h1 > strong {color:red;}
这个规则会把第一个 h1 下面的两个 strong 元素变为红色,但是第二个 h1 中的 strong 不受影响:
<h1>This is <strong>very</strong> <strong>very</strong> important.</h1> <h1>This is <em>really <strong>very</strong></em> important.</h1>
选择父元素中的子元素.
父元素选择器 > 子元素的选择器{}
h1 > strong {color:red;}
这个规则会把第一个 h1 下面的两个 strong 元素变为红色,但是第二个 h1 中的 strong 不受影响:
<h1>
This is <strong>very</strong> <strong>very</strong> important.
</h1>
<h1>
This is <em>really <strong>very</strong></em> important.
</h1>
3. 分组选择器
将多个选择器的选择结果进行一个 或 的操作.
选择器1,选择器2,...{}
p,div { color:#FF0000;}
<p>P标签显示段落。</p>
<div>DIV标签显示段落</div>
注:多个不同选择器要用逗号分隔开。
假设希望 h2 元素和段落都有灰色。为达到这个目的,最容易的做法是使用以下声明:
h2, p {color:gray;}
将 h2 和 p 选择器放在规则左边,然后用逗号分隔,就定义了一个规则。其右边的样式(color:gray;)将应用到这两个选择器所引用的元素。逗号告诉浏览器,规则中包含两个不同的选择器。如果没有这个逗号,那么规则的含义将完全不同。参见后代选择器。
可以将任意多个选择器分组在一起,对此没有任何限制。
例如,如果您想把很多元素显示为灰色,可以使用类似如下的规则:
body, h2, p, table, th, td, pre, strong, em {color:gray;}
----------------------------------------------------------------------
h1, h2, h3, h4, h5, h6 { color:gray; background: white; padding: 10px; border: 1px solid black; font-family: Verdana; }
4. 属性选择器
选择具有指定属性,或指定属性的值等与指定值的选择器.
选择器[属性名]{}
选择器[属性名='属性值']{}
相当于 元素[属性]
如果希望把包含属性(title)的所有元素变为红色,可以写作:
*[title] {color:red;}
与上面类似,可以只对有 href 属性的锚(a 元素)应用样式:
a[href] {color:red;}
为了将同时有 href 和 title 属性的 HTML 超链接的文本设置为红色,可以这样写:
a[href][title] {color:red;}
假设只希望选择 moons 属性值为 1 的那些 planet 元素:
planet[moons="1"] {color: red;}
上面的代码会把以下标记中的第二个元素变成红色,但第一个和第三个元素不受影响:
<planet>Venus</planet>
<planet moons="1">Earth</planet>
<planet moons="2">Mars</planet>
5. 相邻兄弟选择器
选择选择器选择到的元素的相邻的兄弟元素
选择器+兄弟元素名{}
h1 + p {margin-top:50px;}
6. 伪元素选择器
其实就在html中预先定义好的一些选择器。称为伪元素。是因为CSS的术语。
:link 未点击的状态
:visited 被点击过的状态
注:在不设置visited状态时active生效,否则会出现visited覆盖active效果
:hover 鼠标移动到元素之上但是仍然未点击的状态
:active 被鼠标点击着的状态
语法
伪元素的语法:
selector:pseudo-element {property:value;}
CSS 类也可以与伪元素配合使用:
selector.class:pseudo-element {property:value;}
2):focus :选择获得焦点的input 元素。
提示:接收键盘事件或其他用户输入的元素都允许 :focus 选择器。
<style type="text/css">
input:focus{background-color:yellow;}</style>
:first-line 伪元素
"first-line" 伪元素用于向文本的首行设置特殊样式。
在下面的例子中,浏览器会根据 "first-line" 伪元素中的样式对 p 元素的第一行文本进行格式化:
实例
p:first-line { color:#ff0000; font-variant:small-caps; }