CSS基础内容总结(六)

 a:link选择所有未访问链接
:visiteda:visited选择所有访问过的链接
:activea:active选择正在活动链接
:hovera:hover把鼠标放在链接上的状态
:focusinput:focus选择元素输入后具有焦点
:first-letterp:first-letter选择每个<p> 元素的第一个字母
:first-linep:first-line选择每个<p> 元素的第一行
:first-childp:first-child选择器匹配属于任意元素的第一个子元素的 <]p> 元素
:beforep:before在每个<p>元素之前插入内容
:afterp:after在每个<p>元素之后插入内容
:lang(language)p:lang(it)为<p>元素的lang属性选择一个开始值

CSS 导航栏


导航栏

熟练使用导航栏,对于任何网站都非常重要。

使用CSS你可以转换成好看的导航栏而不是枯燥的HTML菜单。


导航栏=链接列表

作为标准的HTML基础一个导航栏是必须的。

在我们的例子中我们将建立一个标准的HTML列表导航栏。

导航条基本上是一个链接列表,所以使用 <ul> 和 <li> 元素非常有意义:

实例

  • <ul>
    <li><a href="default.asp">Home</a></li>
    <li><a href="news.asp">News</a></li>
    <li><a href="contact.asp">Contact</a></li>
    <li><a href="about.asp">About</a></li>
    </ul>

     


尝试一下 »

现在,让我们从列表中删除边距和填充:

实例

ul
{
list-style-type:none;
margin:0;
padding:0;
}


尝试一下 »

例子解析:

  • list-style-type:none - 移除列表前小标志。一个导航栏并不需要列表标记

  • 移除浏览器的默认设置将边距和填充设置为0

上面的例子中的代码是垂直和水平导航栏使用的标准代码。


垂直导航栏

上面的代码,我们只需要 元素的样式,建立一个垂直的导航栏:

实例

a
{
display:block;
width:60px;
}


尝试一下 »

示例说明:

  • display:block - 显示块元素的链接,让整体变为可点击链接区域(不只是文本),它允许我们指定宽度

  • width:60px - 块元素默认情况下是最大宽度。我们要指定一个60像素的宽度

提示:查看完全样式的垂直导航栏的示例.

注意: 请务必指定 元素在垂直导航栏的的宽度。如果省略宽度,IE6可能产生意想不到的效果。


水平导航栏

有两种方法创建横向导航栏。使用内联浮动的列表项。

这两种方法都很好,但如果你想链接到具有相同的大小,你必须使用浮动的方法。


内嵌列表项

建立一个横向导航栏的方法之一是指定

元素, 上述代码是标准的内嵌:

实例

li
{
display:inline;
}


尝试一下 »

实例解析:

  • display:inline - 默认情况下,<li>元素是块元素。在这里,我们删除换行符之前和之后每个列表项,以显示一行。

提示: 查看完全样式的水平导航栏的示例.


浮动列表项

在上面的例子中链接有不同的宽度。

对于所有的链接宽度相等,浮动

元素,并指定为 元素的宽度:

实例

li
{
float:left;
}
a
{
display:block;
width:60px;
}


尝试一下 »

实例解析:

  • float:left - 使用浮动块元素的幻灯片彼此相邻

  • display:block - 显示块元素的链接,让整体变为可点击链接区域(不只是文本),它允许我们指定宽度

  • width:60px - 块元素默认情况下是最大宽度。我们要指定一个60像素的宽度

  • display:inline; -默认情况下,

  • 元素是块元素。在这里,我们删除换行符之前和之后每个列表项,以显示一行 。

Tip:查看完全样式的横向导航栏的示例..

CSS 下拉菜单

使用 CSS 创建一个鼠标移动上去后显示下拉菜单的效果。


下拉菜单实例

实例演示 1

文本下拉菜单

W3Cschool教程

www.w3cschool.cn

 

 

实例演示 2

下拉菜单

W3Cschool HTML教程 W3Cschool CSS教程W3Cschool JAVA教程

 

 

实例演示 3

Trolltunga NorwayTrolltunga Norway

学技术,从W3Cschool开始!

 


基本下拉菜单

当鼠标移动到指定元素上时,会出现下拉菜单。

实例

<style>
.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    padding: 12px 16px;
    z-index: 1;
}

.dropdown:hover .dropdown-content {
    display: block;
}
</style>

<div class="dropdown">
  <span>Mouse over me</span>
  <div class="dropdown-content">
    <p>Hello World!</p>
  </div>
</div>


尝试一下 »

实例解析

HTML 部分:

 

 

我们可以使用任何的 HTML元素来打开下拉菜单,如:<span>, 或 a <button> 元素。

使用容器元素 (如: <div>) 来创建下拉菜单的内容,并放在任何你想放的位置上。

使用 <div> 元素来包裹这些元素,并使用 CSS 来设置下拉内容的样式。

 

 

CSS 部分:

.dropdown 类使用 position:relative, 这将设置下拉菜单的内容放置在下拉按钮 (使用 position:absolute) 的右下角位置。

.dropdown-content 类中是实际的下拉菜单。默认是隐藏的,在鼠标移动到指定元素后会显示。 注意 min-width 的值设置为 160px。你可以随意修改它。 注意: 如果你想设置下拉内容与下拉按钮的宽度一致,可设置 width 为 100% ( overflow:auto 设置可以在小尺寸屏幕上滚动)。

我们使用 box-shadow 属性让下拉菜单看起来像一个"卡片"。

:hover 选择器用于在用户将鼠标移动到下拉按钮上时显示下拉菜单。


下拉菜单

创建下拉菜单,并允许用户选取列表中的某一项:

这个实例类似前面的实例,当我们在下拉列表中添加了链接,并设置了样式:

实例

<style>
/* 下拉按钮样式 */
.dropbtn {
    background-color: #4CAF50;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}

/* 容器 <div> - 需要定位下拉内容 */
.dropdown {
    position: relative;
    display: inline-block;
}

/* 下拉内容 (默认隐藏) */
.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

/* 下拉菜单的链接 */
.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

/* 鼠标移上去后修改下拉菜单链接颜色 */
.dropdown-content a:hover {background-color: #f1f1f1}

/* 在鼠标移上去后显示下拉菜单 */
.dropdown:hover .dropdown-content {
    display: block;
}

/* 当下拉内容显示后修改下拉按钮的背景颜色 */
.dropdown:hover .dropbtn {
    background-color: #3e8e41;
}
</style>

<div class="dropdown">
  <button class="dropbtn">下拉菜单</button>
  <div class="dropdown-content">
    <a href="#">W3Cschool教程 1</a>
    <a href="#">W3Cschool教程 2</a>
    <a href="#">W3Cschool教程 3</a>
  </div>
</div>


尝试一下 »


下拉内容对齐方式

float:left;

W3Cschool HTML教程 W3Cschool CSS教程 W3Cschool JAVA教程

 

 

float:right;

W3Cschool HTML教程 W3Cschool CSS教程 W3Cschool JAVA教程

 

如果你想设置右浮动的下拉菜单内容方向是从右到左,而不是从左到右,可以添加以下代码 right: 0;

实例

.dropdown-content {
    right: 0;
}

尝试一下 »


更多实例

图片下拉
该实例演示了如何如何在下拉菜单中添加图片。

导航条下拉
该实例演示了如何在导航条上添加下拉菜单。

CSS 图片廊


以下是使用CSS创建图片廊:

Klematis

添加图片描述

Klematis

添加图片描述

Klematis

添加图片描述

Klematis

添加图片描述

 

 

 

 

 


 

图片廊

T以下是使用CSS创建图片廊:

实例

<html>
<head>
<style>
div.img
  {
  margin:2px;
  border:1px solid #0000ff;
  height:auto;
  width:auto;
  float:left;
  text-align:center;
  }
div.img img
  {
  display:inline;
  margin:3px;
  border:1px solid #ffffff;
  }
div.img a:hover img
  {
  border:1px solid #0000ff;
  }
div.desc
  {
  text-align:center;
  font-weight:normal;
  width:120px;
  margin:2px;
  }
</style>
</head>
<body>

<div class="img">
  <a target="_blank" href="klematis_big.htm">
  <img src="klematis_small.jpg" alt="Klematis" width="110" height="90">
  </a>
  <div class="desc">Add a description of the image here</div>
</div>
<div class="img">
  <a target="_blank" href="klematis2_big.htm">
  <img src="klematis2_small.jpg" alt="Klematis" width="110" height="90">
  </a>
  <div class="desc">Add a description of the image here</div>
</div>
<div class="img">
  <a target="_blank" href="klematis3_big.htm">
  <img src="klematis3_small.jpg" alt="Klematis" width="110" height="90">
  </a>
  <div class="desc">Add a description of the image here</div>
</div>
<div class="img">
  <a target="_blank" href="klematis4_big.htm">
  <img src="klematis4_small.jpg" alt="Klematis" width="110" height="90">
  </a>
  <div class="desc">Add a description of the image here</div>
</div>

</body>
</html>


尝试一下 »

CSS 图像透明/不透明


使用CSS很容易创建透明的图像。

注意:CSS Opacity属性是W3C的CSS3建议的一部分。


Examples

更多实例

创建透明图像 - 悬停效果

创建一个具有文本的拥有背景图像的透明框


实例1 - 创建一个透明图像

CSS3中属性的透明度是 opacity.

首先,我们将向您展示如何用CSS创建一个透明图像。

正常的图像

klematis

相同的图像带有透明度:

klematis

看看下面的CSS:

img
{
opacity:0.4;
filter:alpha(opacity=40); /* For IE8 and earlier */
}

IE9,Firefox,Chrome,Opera,和Safari浏览器使用透明度属性可以将图像变的不透明。 Opacity属性值从0.0 - 1.0。值越小,使得元素更加透明。

IE8和早期版本使用滤镜:alpha(opacity= x)。 x可以采取的值是从0 - 100。较低的值,使得元素更加透明。

提示:在本站的CSS参考手册中对 CSS opacity 属性有详细介绍。


实例2 - 图像的透明度 - 悬停效果

将鼠标移到图像上:

klematis

klematis

CSS样式:

img
{
opacity:0.4;
filter:alpha(opacity=40); /* For IE8 and earlier */
}
img:hover
{
opacity:1.0;
filter:alpha(opacity=100); /* For IE8 and earlier */
}

第一个CSS块是和例1中的代码类似。此外,我们还增加了当用户将鼠标悬停在其中一个图像上时发生什么。在这种情况下,当用户将鼠标悬停在图像上时,我们希望图片是清晰的。

此CSS是:opacity=1.

IE8和更早版本使用: filter:alpha(opacity=100).

当鼠标指针远离图像时,图像将重新具有透明度。


实例3 - 透明的盒子中的文字

这些文本在透明框里。这些文本在透明框里。这些文本在透明框里。这些文本在透明框里。这些文本在透明框里。这些文本在透明框里。这些文本在透明框里。这些文本在透明框里。这些文本在透明框里。这些文本在透明框里。这些文本在透明框里。这些文本在透明框里。这些文本在透明框里。

源代码如下:

<html>
<head>
<style>
div.background
{
width:500px;
height:250px;
background:url(klematis.jpg) repeat;
border:2px solid black;
}
div.transbox
{
width:400px;
height:180px;
margin:30px 50px;
background-color:#ffffff;
border:1px solid black;
opacity:0.6;
filter:alpha(opacity=60); /* For IE8 and earlier */
}
div.transbox p
{
margin:30px 40px;
font-weight:bold;
color:#000000;
}
</style>
</head>

<body>

<div class="background">
<div class="transbox">
<p>This is some text that is placed in the transparent box.This is some text that is placed in the transparent box.This is some text that is placed in the transparent box.This is some text that is placed in the transparent box.This is some text that is placed in the transparent box.</p>
</div>
</div>

</body>
</html>

首先,我们创建一个固定的高度和宽度的div元素,带有一个背景图片和边框。然后我们在第一个div内部创建一个较小的div元素。 这个div也有一个固定的宽度,背景颜色,边框 - 而且它是透明的。透明的div里面,我们在P元素内部添加一些文本。

CSS 图像拼合技术


图像拼合

图像拼合就是单个图像的集合。

有许多图像的网页可能需要很长的时间来加载和生成多个服务器的请求。

使用图像拼合会降低服务器的请求数量,并节省带宽。


图像拼合 - 简单实例

与其使用三个独立的图像,不如我们使用这种单个图像("img_navsprites.gif"):

navigation images

有了CSS,我们可以只显示我们需要的图像的一部分。

在下面的例子CSS指定显示 "img_navsprites.gif" 的图像的一部分:

实例

img.home
{
width:46px;
height:44px;
background:url(img_navsprites.gif) 0 0;
}


尝试一下 »

实例解析:

  • <img class="home" src="img_trans.gif" /> -因为不能为空,src属性只定义了一个小的透明图像。显示的图像将是我们在CSS中指定的背景图像
  • 宽度:46px;高度:44px; - 定义我们使用的那部分图像
  • background:url(img_navsprites.gif) 0 0; - 定义背景图像和它的位置(左0px,顶部0px)

这是使用图像拼合最简单的方法,现在我们使用链接和悬停效果。


图像拼合 - 创建一个导航列表

我们想使用拼合图像 ("img_navsprites.gif"),以创建一个导航列表。

我们将使用一个HTML列表,因为它可以链接,同时还支持背景图像:

实例

#navlist{position:relative;}
#navlist li{margin:0;padding:0;list-style:none;position:absolute;top:0;}
#navlist li, #navlist a{height:44px;display:block;}

#home{left:0px;width:46px;}
#home{background:url('img_navsprites.gif') 0 0;}

#prev{left:63px;width:43px;}
#prev{background:url('img_navsprites.gif') -47px 0;}

#next{left:129px;width:43px;}
#next{background:url('img_navsprites.gif') -91px 0;}


尝试一下 »

实例解析:

  • #navlist{position:relative;} - 位置设置相对定位,让里面的绝对定位
  • #navlist li{margin:0;padding:0;list-style:none;position:absolute;top:0;} - margin和padding设置为0,列表样式被删除,所有列表项是绝对定位
  • #navlist li, #navlist a{height:44px;display:block;} - 所有图像的高度是44px

现在开始每个具体部分的定位和样式:

  • #home{left:0px;width:46px;} - 定位到最左边的方式,以及图像的宽度是46px
  • #home{background:url(img_navsprites.gif) 0 0;} - 定义背景图像和它的位置(左0px,顶部0px)
  • #prev{left:63px;width:43px;} - 左外边距定位63px(#home宽46px+项目之间的一些多余的空间),宽度为43px。
  • #prev{background:url('img_navsprites.gif') -47px 0;} - 定义背景图像向右侧定位47px(#home宽46px+分隔线的1px)
  • #next{left:129px;width:43px;}- 左外边距定位129px(#prev 63px + #prev宽是43px + 剩余的空间), 宽度是43px.
  • #next{background:url('img_navsprites.gif') no-repeat -91px 0;} - 定义背景图像向右侧定位91px(#home 46px+1px的分割线+#prev宽43px+1px的分隔线)

图像拼合 - 悬停效果

现在,我们希望我们的导航列表中添加一个悬停效果。

lamp:hover 选择器用于鼠标悬停在元素上的显示的效果

提示:
:hover 选择器可以运用于所有元素。在本站CSS参考手册的CSS:hover选择器一节,你可以更加了解该选择器的用法。

我们的新图像 ("img_navsprites_hover.gif") 包含三个导航图像和三幅图像:

navigation images

因为这是一个单一的图像,而不是6个单独的图像文件,当用户停留在图像上不会有延迟加载。

我们添加悬停效果只添加三行代码:

实例

#home a:hover{background: url('img_navsprites_hover.gif') 0 -45px;}
#prev a:hover{background: url('img_navsprites_hover.gif') -47px -45px;}
#next a:hover{background: url('img_navsprites_hover.gif') -91px -45px;}


尝试一下 »

实例解析:

  • 由于该列表项包含一个链接,我们可以使用:hover伪类
  • #home a:hover{background: transparent url(img_navsprites_hover.gif) 0 -45px;} - 对于所有三个悬停图像,我们指定相同的背景位置,只是每个再向下45px

CSS 媒体类型


媒体类型允许你指定文件将如何在不同媒体呈现。该文件可以以不同的方式显示在屏幕上,在纸张上,或听觉浏览器等等。 


媒体类型

某些 CSS 属性仅仅被设计为针对某些媒介。比方说 "voice-family" 属性被设计为针对听觉用户终端。其他一些属性可用于不同的媒体类型。例如,"font-size"属性可用于屏幕和印刷媒体,但有不同的值。屏幕和纸上的文件不同,通常需要一个更大的字体,sans - serif字体比较适合在屏幕上阅读,而serif字体更容易在纸上阅读。


@media 规则

@media 规则允许在相同样式表为不同媒体设置不同的样式。

在下面的例子告诉我们浏览器屏幕上显示一个14像素的Verdana字体样式。但是如果页面打印,将是10个像素的Times字体。请注意,font-weight在屏幕上和纸上设置为粗体:

<html>
<head>
<style>
@media screen
{
	p.test {font-family:verdana,sans-serif;font-size:14px;}
}
@media print
{
	p.test {font-family:times,serif;font-size:10px;}
}
@media screen,print
{
	p.test {font-weight:bold;}
}
</style>
</head>

<body>
....
</body>
</html>

你可以自己尝试看看 ! 如果您使用的是Mozilla / Firefox或IE5+打印此页,你会看到,"Media Types"将使用另一种比其他文本字体大小小点的字体显示。

提示:有关 @media 规则的更多信息,请参考CSS参考手册的CSS @media 查询部分。


其他媒体类型

注意:媒体类型名称不区分大小写。

媒体类型描述
all用于所有的媒体设备。
aural用于语音和音频合成器。
braille用于盲人用点字法触觉回馈设备。
embossed用于分页的盲人用点字法打印机。
handheld用于小的手持的设备。
print用于打印机。
projection用于方案展示,比如幻灯片。
screen用于电脑显示器。
tty用于使用固定密度字母栅格的媒体,比如电传打字机和终端。
tv用于电视机类型的设备。

CSS 属性 选择器

顾名思义,CSS 属性选择器就是指可以根据元素的属性以及属性值来选择元素。


具有特定属性的HTML元素样式

具有特定属性的HTML元素样式不仅仅是class和id。

注意:IE7和IE8需声明!DOCTYPE才支持属性选择器!IE6和更低的版本不支持属性选择器。


属性选择器

下面的例子是把包含标题(title)的所有元素变为蓝色:

实例

[title]
{
color:blue;
}


尝试一下 »

 


属性和值选择器

下面的实例改变了标题title='w3cschool'元素的边框样式:

实例

[title=w3cschool]
{
border:5px solid green;
}


尝试一下 »

 


属性和值的选择器 - 多值

下面是包含指定值的title属性的元素样式的例子,使用(~)分隔属性和值:

实例

[title~=hello] { color:blue; }


尝试一下 »

下面是包含指定值的lang属性的元素样式的例子,使用(|)分隔属性和值:

实例

[lang|=en] { color:blue; }


尝试一下 »

 


表单样式

属性选择器样式无需使用class或id的形式:

实例

input[type="text"]
{
width:150px;
display:block;
margin-bottom:10px;
background-color:yellow;
}
input[type="button"]
{
width:120px;
margin-left:35px;
display:block;
}


尝试一下 »


相关文章

CSS 参考手册:CSS [attribute|=value] 选择器

 

你已经学习了CSS,下一步学习什么呢?


CSS 总结

本教程已向你讲解了如何创建样式表来同时控制多重页面的样式和布局。

你已经学会如何使用 CSS 来添加背景、格式化文本、以及格式化边框,并定义元素的填充和边距。

同时,你也学会了如何定位元素、控制元素的可见性和尺寸、设置元素的形状、将一个元素置于另一个之后,以及向某些选择器添加特殊的效果,比如链接。

如果需要更多关于 CSS 的信息,请参阅我们的 CSS 实例, CSS 参考手册, 和 CSS3 教程


你已经学习了CSS,下一步学习什么呢?

下一步应该学习 JavaScript 。

JavaScript

JavaScript 是最流行的语言之一。

JavaScript 是属于 web 的语言,它适用于 PC、笔记本电脑、平板电脑和移动电话。

JavaScript可以使您的网站更具活力。

许多 HTML 开发者都不是程序员,但是 JavaScript 却拥有非常简单的语法。几乎每个人都有能力将小的 JavaScript 片段添加到网页中。 如果您希望

如果您希望学习更多关于 JavaScript 的知识,请马上访问我们的JavaScript 教程.

学完本教程之后,W3Cschool推荐您进行CSS实战来巩固你刚学习的新知识。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值