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. asp.net上传文件超过了最大请求长度[转]

    错误消息:超过了最大请求长度    错误原因:asp.net默认最大上传文件大小为4M,运行超时时间为90S.   解决方案 1. 修改web.config文件可以改变这个默认值            ...

  2. AC 设置DMZ口上网

  3. Ninject之旅之六:Ninject约定

    摘要 在小的应用系统中一个一个注册一些服务类型不怎么困难.但是,如果是一个实际的有上百个服务的应用程序呢?约定配置允许我们使用约定绑定一组服务,而不用一个一个分别绑定. 要使用约定配置,需要添加Nin ...

  4. bcm cmd

    BCM.1> port ge en=0 ;Disable all GbEBCM.1> tx 2 pbm=ge2,fe7 ;Transmit 2 packets out of both po ...

  5. performSelector和respondsToSelector用法

    一.performSelector调用和直接调用区别 下面两段代码都在主线程中运行,我们在看别人代码时会发现有时会直接调用,有时会利用performSelector调用,今天看到有人在问这个问题,我便 ...

  6. C++模板类继承的一个小技巧

    先说一下background前段时间想实现一个Sqlite localstorage的功能,对应不同的Model 实体有不同的table, 每一次sql操作的函数签名中会有model实体中的struc ...

  7. Git 操作本地分支与远程分支

    1 查看本地分支 git branch 2 查看远程分支 git branch -a 3 新建远程分支 git checkout -b developr git push origin develop ...

  8. Django 之Model(ORM)

    app01.models.py中写类 python manage.py makemigrations python manage.py migrate python3 manage.py create ...

  9. 使用openssl实现ECDSA签名以及验证功能(附完整测试源码)

    突然找到数年前写的这段代码,当是因为对密码学几乎不怎么了解踩了一些坑,现在开源出来方便大家直接利用. ECDSA的全名是Elliptic Curve DSA,也就是椭圆曲线DSA,由于椭圆曲线的复杂性 ...

  10. thinkphp nginx php-fpm url rewrite 导致 404 错误

    ## thinkphp nginx php-fpm url rewrite 导致 404 错误 之前thinkphp的系统部署在apache上,考虑到在并发性能nginx比apache强悍得多,所以在 ...