HTML页面代码:

 <!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" src="jquery.js"></script>
<script 1type="text/javascript"> </script>
</head>
<body>
<div id="navigator">
<ul id="navList">
<li><a href="#" class="menu">首页</a></li>
<li><a href="#" class="menu">新随笔</a></li>
<li><a href="#" class="menu">订阅</a></li>
<li><a href="#" class="menu">管理</a></li>
</ul>
</div>
</body>
</html>

CSS样式代码:

 a:link {
color: black;
text-decoration: none; /*设置链接无需下划线*/
} #navigator{
background-color:#AEAEAE;
position:absolute;
left:50%;
margin-left:-200px;
/*bottom:0px;*/
/*width:400px;*/
height:80px;
}
#navList{
min-height:80px;
overflow:hidden;
}
#navList li{
float:left;
list-style:none; /*设置无需无序元素前默认的黑点*/
} #navList a{
display:block;
width:100px;
height:80px;
line-height:80px;
font-size:16px;
text-align:center;
position:relative;
-webkit-transition:all .4s;
}
#navList a:after,#navList a:before{ /*CSS中,E:after表示伪元素,多用于设置div之间的间隙*/
position:absolute;
display:block;
bottom:2px;
opacity:; /*隐藏文字两边的中括号*/
-webkit-transition:all .4s;
} #navList a:after{
content:"]";
right:20px;
}
#navList a:before{
content:"[";
left:20px;
}
#navList a:link,#navList a:visited,/*设置超链接已经被访问过时的样式*/#navList a:active{
color:#eee;
} #navList a:hover{
color:#f62459;
text-decoration:none;
}
#navList a:hover:after{
right:0px;
opacity:;
}
#navList a:hover:before{
left:0px;
opacity:;
}

显示效果如下:

当鼠标停留在导航栏的链接上时,文字两旁会显示红色中括号。

CSS中伪元素说明

以上页面代码如下所示:

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

 <html xmlns="http://www.w3.org/1999/xhtml">

 <head>

 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

 <title>单列定宽单列自适应结构</title>

 <style>

 /*设置页面中所有元素的内外补丁为0,便于便捷的页面布局*/

 *{

 margin:0;

 padding:0;

 }

 /*设置头部信息以及底部信息的高度为30px,并添加浅灰色背景*/

 #header,#footer{

 height:30px;

 background-color:#e8e8e8;

 }

 /*设置页面内容区域上下外补丁为10px*/

 #container{

 margin:10px 0;

 }

 /*设置主要内容区域的宽度为70%,背景色以及文本颜色,并居左显示*/

 .mainBox{

 float:left;/*将主要内容区域向左浮动*/

 width:70%;/*将mainBox的宽度修改为70%*/

 color:#ff0000;

 background-color:#333333;

 }

 /*设置侧边栏的宽度为200px,背景色以及文本颜色,并居右显示*/

 .sideBox{

 float:right;/*将侧边栏向右浮动*/

 width:200px;/*将sideBox的宽度修改为200px*/

 margin-left:-200px;/*添加负边距使sideBox向左浮动缩进,就是当浏览器窗口变小任然不改变sideBox的大小,这时sideBox就会插入到旁边的mainBox里,而如果没有设置,窗口变小时就会换行打乱下面的布局*/
color:#ffffff;/*设置文本颜色*/
background-color:#999999; /*设置背景颜色*/
}
/*清除内容区域的左右浮动,本段重点理解一下(after是什么意思)*/
#container:after{
display:block;
visibility:hidden;
font-size:0;
line-height:0;
clear:both;
content:"";
}
/*添加地步信息的对上级标签元素的浮动的清除*/
#footer{
clear:both;
}
</style>
</head>
<body>
<div id="header">头部信息</div>
<div id="container">
<div class="mainBox">
<p>主要内容区域</p>
<p>已经不再只是一行文字了</p>
<p>要放很多很多东西到这个区域中来</p>
<p>不断的重复啊重复着……</p>
<p>不断的重复啊重复着……</p>
<p>不断的重复啊重复着……</p>
<p>不断的重复啊重复着……</p>
<p>不断的重复啊重复着……</p>
<p>不断的重复啊重复着……</p>
<p>不断的重复啊重复着……</p>
<p>不断的重复啊重复着……</p>
<p>不断的重复啊重复着……</p>
</div>
<div class="sideBox">侧边栏</div>
</div>
<div id="footer">底部信息</div>
</body>
</html>

这段代码多了红色部分;现将红色部分代码注释,显示页面如图所示:

可见当没有红色代码部分时,底部信息和主要内容部分紧紧贴在一起,之间没有空隙。

#container:after{

display:block;

visibility:hidden;

font-size:0;

line-height:0;

clear:both;

content:"";

}

这段代码中的#container:after是针对一个伪元素进行CSS样式设置,HTML页面并没有这样一个div存在。

after是在元素后面的意思,实质是在元素之后添加内容。
这个伪元素允许在元素内容的最后面插入生成内容,需要和content属性一起使用,设置在对象后发生的内容。默认地,这个伪元素是inline行内元素,不过可以使用属性 display 改变这一点。

HTML和CSS设置动态导航以及CSS中伪元素的简单说明的更多相关文章

  1. 深入理解脚本化CSS系列第六篇——脚本化伪元素的6种方法

    × 目录 [1]动态样式 [2]CSS类[3]setAttribute()[4]CSSRule对象添加[5]空样式覆盖[6]CSSRule对象删除 前面的话 我们可以通过计算样式来读取伪元素的样式信息 ...

  2. css中伪元素before或after中content的特殊用法attr

    html代码如下: <div class="haorooms"> <span data-haorooms="haorooms鼠标效果tips-纯css& ...

  3. CSS魔法堂:一起玩透伪元素和Content属性

    前言  继上篇<CSS魔法堂:稍稍深入伪类选择器>记录完伪类后,我自然而然要向伪元素伸出"魔掌"的啦^_^.本文讲讲述伪元素以及功能强大的Contet属性,让我们可以通 ...

  4. css中伪元素before或after中content的特殊用法attr【转】

    [原文]https://segmentfault.com/a/1190000002750033 CSS中主要的伪元素有四个:before/after/first-letter/first-line,在 ...

  5. IE8中伪元素动态作用样式不重绘bug记录

    前阵子对公司框架的前端优化中,使用了字体图标(iconfont)来做模块的图标集,供用户进行配置选择. 字体图标的有非常好的灵活性和复用性,可以像处理文字一样通过font-size进行大小设置.通过c ...

  6. CSS 设置背景透明度,不影响子元素

    由于 opacity 属性能被子元素继承,使用它设置父元素背景透明度时也会影响子元素. 解决方法: 1> 使用 RGBA Example .classname { /* RGBa, 透明度0.6 ...

  7. 原生CSS设置网站主题色—CSS变量赋值

    定义CSS变量 在css文件顶部定义css变量,注意必须以--开头,使用:root包括这几个变量 :root { --main-bg-color: #ff7675; --color1: #fbfee9 ...

  8. .NET Web后台动态加载Css、JS 文件,换肤方案

    后台动态加载文件代码: //假设css文件:TestCss.css #region 动态加载css文件 public void AddCss() { HtmlGenericControl _CssFi ...

  9. Jquery 设置class 和 div CSS

    Jquery 设置class 和 div CSS 1 Jquery 根据标签内容获取标签div,从而修改该div CLASS //追加 $('label:contains("labelcon ...

随机推荐

  1. The source attachment does not contain the source for the file  ActionSupport.class 错误

    报错  Syntax error, insert ";" to complete FieldDeclaration 报错   The source attachment does ...

  2. ASP.NET生成WORD文档,服务器部署注意事项

    网上转的,留查备用,我服务器装的office2007所以修改的是Microsoft Office word97 - 2003 文档这一个. ASP.NET生成WORD文档服务器部署注意事项 1.Asp ...

  3. 在Ubuntu上安装Mysql For Python

    安装: 首先安装pip,并且把pip更新到最小版本 apt-get install python-pip pip install -U pip 安装mysql开发包 apt-get install p ...

  4. Nodejs学习(一)-Nodejs和express的安装和配置

    声明我的操作系统是ubuntu环境,直接下载了tar文件进行解压安装,步骤如下 1.nodejs官网下载node-v4.6.0-linux-x86.tar.xz文件. youyuan1980@youy ...

  5. vim的树形菜单NERDTREE的设置

    网上比较好的一篇文章:http://coolshell.cn/articles/1679.html http://coolshell.cn/articles/11312.html 1.Vim安装NER ...

  6. Managing IIS Log File Storage

    Managing IIS Log File Storage   You can manage the amount of server disk space that Internet Informa ...

  7. Linq的一些很方便的方法

    Aggregate Aggregate我用的最多的地方就是拼接字符串,打个比方来说,如果有数组,想要的结果是在他们之间插入一个","然后返回拼接以后的新字符串. 常规的做法是: L ...

  8. linux 学习3 第四讲 文件常用命令

    好几天没有在网上总结了.我把ppt先誊写在本子上,这样听的时候记录就方便很多,添些东西就可以. 我想先看shell那部分,但是没有之前几章的准备,是没法跟着视频动手操作的.所以还是按部就班得学习. 虽 ...

  9. Ternary Search Trees 三分搜索树

    经常碰到要存一堆的string, 这个时候可以用hash tables, 虽然hash tables 查找很快,但是hash tables不能表现出字符串之间的联系.可以用binary search ...

  10. SOA架构介绍和理解

    SOA架构介绍和理解 SOA的正确方法论及目标模型,其实SOA在实现架构落地上,需要考虑到对服务的组合,不断的重用现有的服务,让企业应用可以逐步集成,快速实现业务的迭代. 通过SOA架构分层将服务按照 ...