HTML&CSS基础篇之十七:补充


更多选择符

伪元素选择符

伪元素选择符与伪类选择符很相似。

伪元素选择符可以用阿里选择元素的一部分,这些元素要是用div和span元素或其他发誓来处理不太方便。比如说:first-letter伪元素选择符可以用来选择一个块元素文本的第一个字,允许你设置首字大写和首字下沉。还有一个叫做first-line的伪元素选择符,用来选择某一段的第一行文字。

用这两个伪元素选择符来选择

元素的首字和首行:

p:first-letter {
    font-size:3em;
}
P:first-line {
   font-style:italic;
}
属性选择符

基于属性值选择元素

img[width] {
    border:back thin solid;
}
img[height="300"] {
    border:red thin solid;
}
image[alt~="flowers"] {
    border:#ccc thin solid;
}

含义分别是:
选择XHTML中包含width属性的所有图像
选择包含height属性值为300的所有图像
选择含有alt属性并且值为flowers的所有图像

基于兄弟进行选择

可以基于前面的兄弟选择元素。例如:你想要选择前面的有一个h1元素的段落,那么你可以用这个选择符。

h1+p {
    font-style:italic;
}

首先书写前面的元素,接着是+符号,最后是兄弟元素
此选择符选择紧跟着一个h1元素的所有段落

组合选择符
.blueberry p  {
    color:purple;
}

选择blueberry类中一个元素子孙的所有段落。
构造一个复杂的选择符
1. 首先,定义要选择元素的上下文

div#greentea > blockquote

在这使用了一个子孙选择符blockquote,它的父选择符是div
选择符,其id为”greentea”。
2. 写出要选择的元素

div#greentea > blockquote p

在想要选择的blockquote上下文后添加一个p元素,它必须是blockquote的后代,而blockquote是id为greentea的div选择符的孩子。
3.详细说明伪元素选择符或者伪类

div#greentea > blockquote p:first-line {
    font-style:italic;
}

添加一个伪元素选择符,first-line来选择段落的首行。


框架

HTML允许把网页拆分为几个框架,每个框架都能在网页中显示。
可能已经注意到带有多框架的网页允许访问第三方页面,同时保持标题和原导航点不受影响。如今框架的大部分已经被认为“过时”,因为它们造成了导航和可用性问题,并且W3C也不建议使用。然而,在这些地方你仍然会发现它们的有用之处。

使用freameset和frame元素在网页中创建一组框架
创建了一系列框架做为三行,第一行占浏览器30%,最后一行占浏览器的20%,中间那行占浏览器的50%。

<frameset row= "30%, *,20%">
    <frame name="header" src="header.html" />
    <frame name="content" src="content.html" />
    <frame name="footer" src="footer.html" />
</frameset>

可以定义列框架,或者兼有行和列框架。

一个框架一个frame元素,每个框架指定了一个框架名和HTML源文件。

以单个name为锚点,使用a元素在目标链接(target link)中指定框架名

<a href="newpage.html" target="content"> new content</a>

iframe的关系元素,它能够被新版本的浏览器所支持。这个内联元素iframe 允许你在页面的任何地方放置框架。用法如下:

<iframe name="inlinecontent" src="newcontent.html" width="500" height="200" />

为newcontent.html,页面创建一个内联框架。

如果要使用框架,需要含有框架布局(frameset)的网页中使用DOCTYPE。

框架布局的DOCTYPE被认为是一种过渡性文本,所以不能设置框架和规范。

HTML 4.0.1用法:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

XHTML1.0 用法:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml11-frameset.dtd">

多媒体和Flash

浏览器可以播放声音、显示视频或者动画,比如网页中的Flash应用。

HTML通过object元素支持这些类型的媒体。object负责在网页中嵌入外部内容(你的网页需要插件程序(plugin viewer),它知道如何显示内容)。

embed元素。如果你想在自己的网页中包含多媒体,我们鼓励你访问其媒体类型设计者的网站,并使用他们推荐给你的设置。

一个object元素嵌入一个Quicktime电影

<object classid="clsid:02BF25D-8c17-4B23-BC80-D3488ABDDC6B" 
    codebase="http://www.apple.com/qtactivex/qtplugin.cab
    height="200"
    width="300>
    <param name="src" value="buckaroo.mov">
    <param name="autoplay" value="true">
    <param name="controller" value="true">
    <embed height="200"
        width="300"
        src= "buckaroo.mov"
        pluginspage= "http://www.apple.com/quicktime/download/"
        type="video/quicktime"
        controller="true"
        autoplay="true">
        Sorry your browser does not support this movie type</embed>
</object>

这是object开始标签,object中需要罗列出一系列的标签和属性,用以指定嵌入在网页中纠错程序。

可以在object元素中嵌入一些元素来提供一组选择。假如浏览器不支持外部的object可以试一试embed。

嵌入的embed元素用来支持旧版本的浏览器

object元素可能是一件麻烦的事情,需要查阅此类viewer产品文档信息中关于如何在你的网页中嵌入它们的viewers


创建网页的工具

Dreamweaver、Golive、FrontPage
所有这些应用工具试图提供一个所见即所得的(WYSIWYG)方式来创建网页。

提供非常便利的特征
  • 一个代码窗口,用来进入具体语法检察功能的XHTML和CSS,它能够在你输入的时候检查出常犯的错误,还能够提供一些常用的名字和属性。
  • 预览和出版的功能,允许你在网页存活于Web之前测试它们。
  • 网站管理员,允许组织你的网站,还能使你的本地语法修改与你在浏览器上的网站保持联系。注意:这通常会帮你关照好所有的FTP任务。
不包括下面这些方面:
  • 通常,这些工具偏离了标准支持,所有为了保持你的XHTML和CSS的时效性-需要自己书写XHTML
  • 通常,这些工具都没有严格遵循标准,并且可能允许你使用XHTML和CSS做很不规范的编写,所有不要忘记校验(同时有些工具能够帮助你检验)。

谨记:可以使用简单的编译器连同这些更复杂工具的组合;一个解决方案并不能满足你所有的需求。所以,当这个创建网页的工具有意义时,你再去使用它。

工具参考:

Dreamweaver
GoLive
FrontPage
Emacs


客户端脚本

HTML网页不是被动的文档,通常有些内容是可执行的。可执行内容会对网页产生影响。你可以通过编写程序或者脚本的方式创建可执行内容。这里有许多配合浏览器工作的脚本语言,其中JavaScript脚本语言起主导作用。

这是一个把可执行内容放到你网页上的小尝试。

<script type="text/javascript">
    function validBid(form) {
        if(form.bid.value > 0) return true;
        eles return false;
    }
</script>

一个新的HTML元素,script ,它允许你在HTML中编写代码。注意我们还设置了JavaScript的类型。

用来检查用户的出价是否是0美元还是低于零美元。

<form onsubmit="return validBid(this);" method="post" action="contest.php">

然后,在XHTML中,你能够创建一个表单,使用这个脚本来检查在表单提交之前用户的出价,如果出价大于0,表单就能够提交。

onsubmit 当提交按钮按下时调用脚本。

脚本还可以做什么?

表单输入校验是一种工作。

JavaScript实际上访问的是整个文档元素树,通过编程可以改变文档树中的值和元素。你可以基于用户行为来编写一个脚本以改变网页的不同方面。

  • 创建一个交互式的游戏,如填字游戏
  • 当用户把鼠标移到图片上时,可以动态地改变图片。
  • 在用户的浏览器中设置本地信息,那么你就能够在他们下次访问时记住这些信息。
  • 让用户选择网页的不同样式。
  • 从一组格言中随机显示一个格言。
  • 显示圣诞节前的购物天数。

服务器端脚本

许多网页都不是由手工创建,而是由运行在服务器上的Web应用程序创建的。
要创建一个Web应用,需要懂得一些服务器端脚本或程序语言。


转到搜索引擎

提高你的排序

搜索引擎通过网页中的组合单词和词组进行搜索排序。为了提供网页排序并告知搜索引擎网页相关的内容,需要在head开始处添加两个meta标签:一个列举关键字,另外一个提供内容描述。关键字是一两个描述网站的单词。比如“咖啡”或者“旅行日志”

<meta name="description" content="This would be your description of what is on your page.Your most important keyword phrases should appear in this description." />

<meta name="keywords" content="keyword phrase 1, keyword phrase 2, keyword phrase 3, etc."/>
如何阻止我的网站列入搜索列表?

可以请求搜索引擎忽略你的网页,不过不能保证所有的引擎都会这么做。
只需要在XHTML表头中插入一个meta标签就行了

<meta name="robots" content="noindex, nofollow" />

这个meta标签告诉搜索引擎忽略这一页及该页上链接的其他页面。


关于打印的样式表

<line rel="stylesheet" type="text/css" media="print" href="forprint.css" />

注意:

  • 把打印区的文本背景颜色设置为白色,这可以增加被打印网页的可读性。

  • 在你的样式表中用点比用像素、百分数或者em来定义字体大小要好得多。点是特别为打印文本设计的,对大多数字体来说,典型的点的大小是12pt

  • San-serif字体在显示屏上易读,而serif字体在打印网页上易读。你可以使用你的打印样式表来改变你的font-family。

  • 如果你的导航菜单、工具条或者网页的主要内容周围的其他内容,对主要内容而言无关紧要,那么可以为打印版本的网页隐藏这些元素。通过把这些元素的显示性质设置为”none”来完成隐藏。

  • 如果你已经在网页上将元素定位,你可以考虑到移除定位属性,那么网页可以用综合的方式打印内容,这对内容的读取有很大的意义。

  • 如果你已经在网页上设置了元素的宽度,你可能用margins或者其他方式把这些宽度改为灵活的宽度,如果你的网页有特定的宽度,那么它可能并不适合打印页面。

制作好打印样式表的关键是着眼于网页的主要内容,并且确保这些内容打印清晰,适合打印页面,并且易读。要想知道你的网页在打印出来时看起来是否好看,最好的方法就是用打印页面来测试你的打印样式表。


适合移动设备的网页

<link rel="stylesheet" type="text/css" media="handheld" href="formobile.css" />

支持handheld样式表的媒体类型始终是有限的。
注意技巧:

  • 记住许多移动服务器按照数据流量收费。这是我们编写简短、正确的XHTML并使用CSS来样式化你网页的最佳理由。

  • 尽可能缩小网页比例。如果你有handheld样式表,用它来尽可能减少字体尺寸、边界和边框。

  • 注意你的多栏布局常常在小设备上被忽略,所以留意你的XHTML中元素的排列。

  • 有些移动设备不支持框架和弹出窗口,所以避免使用它们。

  • 最后,最好的办法就是经常测试你的网页,这样才能知道它们在小设备上的真实表现。


Blog博客

博客自定义样式表

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3c.org/TR/xhtml11/DTD/xhtml11-strict.dtd">
<html xmlns="http://www.w3c.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title><$BlogPageTitle$></title>
    <$BlogMetaData$>
    <style type="text/css">
        body {
            margin: 0px;
            padding: 0px;
            text-align: center;
            color: #554;
            backgroud: #689C54 url(http://www.blogblog.com/dots_dark/bg_mindots.gif)
            font-family: "Lucida Grande", lucida, helvetica, sans-serif;
            font-size: small;
        }
        ....
        ...
    </style>
</head>
<body>
....
</body>
</html>

这个blog服务器使用XHTML1.0 strict.dtd,所有这里的DOCTYPE和html属性都是你之前见过的。

这里<$...$>是模板变量,当你创建Blog和添加新POST时,它们会用你的Blog名和其他内容来填充,当它需要正确显示你的BLog内容时,你应该保留这些变量。

样式表的顶部,它确定你Blog的外观。这个模板消除了主体的边界和补白。给文字确定了一个默认的颜色,给页面背景配置了一张图片,并设定了字体的属性。

这里有许多样式规则,每个样式规则分别控制blog的显示如字体、标题、颜色……。也就是说,现在这些和你以前见过的样式一样。

这些XHTML包括了Blog中所需要的各个部分,标题、内容、日期等。每个内容区域都会有<$...$>变量,用来插入从你的POST中获取的内容。

基于Head First HTML 整理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值