XHTML标签的嵌套规则

  XHTML 的标签有许多:div、ul、li、dl、dt、dd、h1~h6、p、a、addressa、span、 strong……我们在运用这些标签搭建页面结构的时候,是可以将它们无限嵌套的,但是,嵌套也需要有一定规则,不能任由网站设计师的个人习惯胡乱嵌套——XHTML 必竟不是 XML。

  在 XHTML 的语言里,我们都知道:ul 标签包含着 li、dl 标签包含着 dt 和 dd——这些固定标签的嵌套规则十分明确。但是,还有许多标签是独立的,它们没有被捆绑在一起,比如 h1、div、p……那么这些标签的嵌套规则到底是怎样的?今天就来说说这个话题。

  提到 XHTML 标签的嵌套规则,我们先得知道有这么二类 XHTML 标签,一类叫做 块级元素(block),一类叫做 内嵌元素(inline,也有许多人叫它:内联、行内、线级等)。

  块级元素 和 内嵌元素 的划分标准很简单,请把下面二行代码放进 body 标签里:

<div style=”border: 1px solid red;”>div1</div>
<div style=”border: 1px solid red;”>div1</div>

浏览器的呈现效果:

div1
div1

  页面呈现的这二个 div 占据了二行空间,除非让它们浮动(float)或是进行其他设置,否则谁都不挨着谁,它们都很霸道的占领属于自己的那一行空间——但凡看到某个标签有此现象,你就可以叫它:块级元素(block)

  再把下面二行代码也放进 body 标签里:

<span style=”border: 1px solid red;”>span1</span>
<span style=”border: 1px solid red;”>span2</span>

  浏览器的呈现效果:

span1 span1

  这一次,两个 span 并列在一行,它们之间睦邻友好、亲切和谐……像这样的标签行为,我们可以称它们为:内嵌元素(inline);

块级元素和内嵌元素的区别:

  · 块级元素 一般用来搭建网站架构、布局、承载内容……像这些大体力活都属于块级元素的,它包括以下这些标签:

div、ul、li、dl、dt、dd、h1~h6、p、address……

  · 内嵌元素 一般用在网站内容之中的某些细节或部位,用以“强调、区分样式、上标、下标、锚点”等等,下面这些标签都属于内嵌元素:

a、span、strong、sub、sup、img……

  · 块元素 和 内嵌元素 是可以互相转换的,转换的代码如下:

display: block; /* 转成块元素 */

display: inline; /* 转成内嵌元素 */

  · 块元素 和 内嵌元素 对于 CSS 的调用规则是不一样的(这篇文章讨论的是标签嵌套,所以对这个知识点不展开说明)。

  简单认识了块元素和内嵌元素以后,下面就可以罗列 XHTML 标签的嵌套规则了:

  1. 块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素

<div><h1></h1><p></p></div> —— 对
<a href=”#”><span></span></a> —— 对
<span><div></div></span> —— 错

  2. 块级元素不能放在<p>里面

<p><ol><li></li></ol></p> —— 错

<p><div></div></p> —— 错

  3. 有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是:

h1、h2、h3、h4、h5、h6、p、dt。

  4. li 内可以包含 div 标签 —— 这一条其实不必单独列出来的,但是网上许多人对此有些疑惑,就在这里略加说明:

  li 和 div 标签都是装载内容的容器,地位平等,没有级别之分(例如:h1、h2 这样森严的等级制度^_^),要知道,li 标签连它的父级 ul 或者是 ol 都可以容纳的,为什么有人会觉得 li 偏偏容纳不下一个 div 呢?别把 li 看得那么小气嘛,别看 li 长得挺瘦小,其实 li 的胸襟很大滴……

  5. 块级元素与块级元素并列、内嵌元素与内嵌元素并列:

<div><h2></h2><p></p></div> —— 对
<div><a href=”#”></a><span></span></div> —— 对

<div><h2></h2><span></span></div> —— 错

  先总结到这里,以后如有新的发现,随时更新。

转载于:https://www.cnblogs.com/newmin/archive/2011/02/18/1958059.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261580.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python爬虫实现网页采集器

import requests #导入requests模块 #UA&#xff1a;User-Agnet:请求载体身份标识 #UA检测&#xff1a;各大门户网站的服务器都会检测请求载体的身份标识&#xff0c;如果请求载体的身份标识为某一款服务器&#xff0c; #则该请求为正常请求&#xff0c;如果请求载体的身份标识…

mongodb备份oplog_MongoDB 备份(mongodump)与恢复(mongorestore)

MongoDB 备份(mongodump)与恢复(mongorestore)MongoDB数据备份在Mongodb中我们使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据到指定目录中。mongodump命令可以通过参数指定导出的数据量级转存的服务器。语法mongodump命令脚本语法如下&#xff1a;>mongodump…

[转]MVC中如何使用RDLC报表

本文转自&#xff1a;http://www.cnblogs.com/BlueWoods/archive/2009/04/27/1444311.html 在用MVC开发项目的时候遇到了一个问题&#xff0c;如何运用RDLC报表&#xff1f; 首先想到的是在Controller返回DataSet,然后在View绑定值&#xff0c;但是遇到一个异常&#xff1a;...…

关于javascript作用域

今天一个挚友给我出了道javascript笔试题&#xff0c;代码如下&#xff1a; function test(){var a b 2; } test(); alert(b); alert(a);我看到这段代码&#xff0c;我笑了&#xff0c;很自信的回答道&#xff0c;会报错&#xff0c;因为a,b都是局部变量&#xff0c;所以a an…

string类的实现(构造函数,析构函数,运算符重载)

String类的代码&#xff1a;class String { public:String(char* str""){_str new char[strlen(str) 1];strcpy(_str, str);}String(const String& str){_str new char[strlen(str._str) 1];strcpy(_str, str._str);}~String(){delete[] _str;}String& o…

html网页设计一个简单的用户登录页面

结果 代码 login.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>用户登录页面</title><link rel"stylesheet" href"./css/login.css"><script src"j…

python url模块介绍_python 中 urlparse 模块介绍

urlparse模块主要是用于解析url中的参数 对url按照一定格式进行 拆分或拼接1.urlparse.urlparse将url分为6个部分&#xff0c;返回一个包含6个字符串项目的元组&#xff1a;协议、位置、路径、参数、查询、片段。import urlparseurl_change urlparse.urlparse(https://i.cnbl…

欢迎光临CAX软件二次开发开源社区!

欢迎光临CAX软件二次开发开源社区&#xff01; http://uucax.uueasy.com转载于:https://www.cnblogs.com/uucax/archive/2011/02/20/1959265.html

ORA-20446: The owner of the job is not registered ORA-06512: at SYSMAN.MGMT

Login as sysman user to the database and execute the following :execute MGMT_USER.MAKE_EM_USER(ARCER);//标红处为需要导出导入权限的用户的用户名 备注:假如你没有开启SYSMAN用户&#xff0c;自行开启&#xff1b;转载于:https://www.cnblogs.com/arcer/archive/2013/06…

ip聚合简介

练习一 本题选择&#xff1a;D 解释如下&#xff1a; 人事部 205.67.159.1110 0000 /27 培训部 205.67.159.1101 0000 /28 销售部 205.67.159.1100 0000 /28 先是培训部与销售部做IP聚合&#xff08;只有网络前缀位数相同才可以做ip聚合&#xff09; 保留相同的位数&…

css编写的技巧效果总结

1. 垂直对齐 如果你之前遇到过这个问题&#xff0c;你就应该知道它是多么的烦人&#xff0c;幸运的是&#xff0c;现在你可以使用CSS3变换来解决这个问题&#xff1a; .vc{ position: relative; top: 50%; -webkit-transform: translateY(-50%); -o-transform: translateY(-50%…

微信公众平台消息接口开发(34)桃花运测试

微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 桃花运 作者&#xff1a;方倍工作室 原文&#xff1a;http://www.cnblogs.com/txw1958/archive/2013/06/06/weixin-if34-peach-blossom-luck.html 桃花运&#xff0c;一般指得到异性缘的运气。而这种运气又常常蕴涵在…

sharepoint 2013 个人站点母版

最近做了个项目&#xff0c;&#xff0c;sharepoint 个人站点要求定制&#xff0c;&#xff0c;搞了好久不知引用的模板 在何位置&#xff0c;查了好多资料还是没有办法解决&#xff0c;&#xff0c;经过不懈的努力&#xff0c;终于找到了&#xff0c;现在记录下&#xff0c;做…

telnet不是内部或外部命令解决方法

在使用window系统在使用telnet命令时&#xff0c;会出现“telnet不是内部或外部命令”的错误。 这是因为windows默认没有开启telnet client 开启window的telnet客户端功能&#xff0c;命令就可以使用了。 1.打开控制面板 2.选择程序 3.选择启用或关闭windows功能 4.将telnet…

java文件读写操作指定编码格式[转]

读文件&#xff1a; BufferedReader 从字符输入流中读取文本&#xff0c;缓冲各个字符&#xff0c;从而提供字符、数组和行的高效读取。 可以指定缓冲区的大小&#xff0c;或者可使用默认的大小。大多数情况下&#xff0c;默认值就足够大了。 通常&#xff0c;Reader 所作的每个…

bean覆盖 springboot_SpringBoot中如何进行Bean配置

在控制器MessageController中注入IMessageService&#xff1a;package com.gwolf.controller;import ch.qos.logback.core.net.SyslogOutputStream;import com.gwolf.service.IMessageService;import com.gwolf.util.controller.AbstractBaseController;import org.springframe…

C# 自定义箭头组件

C#自定义箭头组件&#xff0c;效果如图&#xff1a; 实现的功能&#xff1a; 1&#xff09; 箭头方向属性左、右、上、下&#xff1b; 2&#xff09; 颜色渐变&#xff0c;且颜色任意调整&#xff1b; 3&#xff09; 箭头大小位置任意调整&#xff1b; 4&#xff09; 其他。 主…

Android的debug.keystore拒绝访问导致的生成异常及解决方案

为什么80%的码农都做不了架构师&#xff1f;>>> 构建Android应用程序的时候输出异常:[apkbuilder] keytool 错误: java.io.FileNotFoundException: C:\Users\my\.android\debug.keystore(拒绝访问.) 导致BUILD FAILED. ##异常原因: Android要求所有的应用程序必须有…

C语言猜数字游戏

程序代码 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<string.h> #include<windows.h> #include<stdlib.h> #include<time.h> void menu() {printf("***********************\n");printf("** …

cml sml区别_资本市场线简介,资本市场线CML与SML的区别

资本市场线可表达为&#xff1a;总报酬率Q*(风险组合的期望报酬率)(1-Q)*(无风险利率)其中 &#xff1a;Q代表投资者自有资本总额中投资于风险组合M的比例&#xff0c;1-Q代表投资于无风险组合的比例。虽然资本市场线表示的是风险和收益之间的关系&#xff0c;但是这种关系也决…