【转】10条你不可不知的css规则

10条你不可不知的css规则

Posted on 2006-12-20 10:33 雨中太阳 阅读(343) 评论(1) 编辑 收藏
:【译】10条你不可不知的css规则

正文:
Published December 6th, 2004 in CssStaff Tags: No Tags.

 

原文地址:Ten CSS Tricks You May not Know

kelet译后感:这10条中有很多条我认为都非常有用,你平时可能遇到的一些莫名的问题也许会在这里找到解决的方法。一些地方我还是把英文的标记原名放在括号内注明了,这样可以明白一些。希望对你有所帮助。(ps:还是挺讨厌遇到<和>的html语句的,因为我暂时只能用它们的原始代号来转换,请留言中避免使用它们,如果要用的话可以使用原始的代码来转换,查看我的页面源代码就可以看到怎么表示了。)

1. CSS字体定义缩写规则
当你定义字体时用到以下这些属性:
font-size: 1em;
line-height: 1.5em;
font-weight: bold;
font-style: italic;
font-variant: small-caps;
font-family: verdana,serif;

那么你可以缩写成这样简短的一行:font: 1em/1.5em bold italic small-caps verdana,serif 这样看上去就好多了。只是我需要给你几点忠告:这种css缩写形式只有当你同时定义了字体和字号的时候才有用。且如果你定义了字重(font- weight),字型(font-style)以及字的变量(font-varient),那么这些属性值就会自动显示为默认的正常状态的值,记住这一点。
2. 采用两个类
通常我们只采用一个类(class)来定义一个属性,但是这并不表示你只能这样做不可。事实上,你可以想加多少类在一个属性上都可以。例如你可以这样

 

使用这两个类(用空格分开而不是逗号)意味着这个段落将同时采用text和side的规则。如果两个类之间有重复的定义,那么将采用两个中属于下一级的那个类的规则。
3. CSS的默认边框(border)值
当你定义个border的首你通常会考虑它的颜色(color)、宽度(width)和样式(style)(次序任意)。例如 border: 3px solid #000将会显示一个黑色的实心的3px宽边。然而这里唯一需要定义的只是border的style(样式)。

如果你要定义一个border为实心(solid),那么边框就将采用浏览器默认的值。但是什么是默认的值呢?边框的默认宽度是中等(相当于3到 4px),默认的颜色是边框内的文本的颜色。如果这两者中任意一个都是你想要的边框的样式,那么你完全可以不用自己费劲去写定义语句。
4. IE会忽略!important
5. 在css规则中通常最后定义的会被优先执行。然而如果你在一个语句后面采用采用 !important那么浏览器应当会不考虑其后的语句而优先执行这个css语句。这一规则对所有非ie浏览器均适用。例如:margin-top: 3.5em !important; margin-top: 2em 那么在所有非IE浏览器中上顶边将会被设置成3.5em,而ie中设置成2em。这一点有时候也是很有用的。尤其是当使用相对边缘(如举例中的那种)的时候,这一点可以在ie和其他浏览器里面显示的略为不同。 图片替代技巧
我们通常建议采用HTML标记来显示text,但是不要用在图片显示上面。这样的做的好处是可以提高页面加载速度并且有比较的好的访问率。然而如果你非觉得你的页面的访客都不喜欢看你这个网页的文字的话,那么你只能使用图片了。

举例来说,如果你是个配件供应商,你想要每个页面的顶图都是你要卖的小配件,并且希望这一词条能够被搜索引擎搜到的话,你可以这样定义图片< h1>“Buy

。这样做当然可以,但是我得很明白的告诉你的是搜索引擎并不会看重你图片的alt文本。(因为有太多网页建设者使用alt文本来冒充关键字了)。所以另外一种方法是

Buy widgets

,这样你显然不必采用你的隐藏文字了。那么修正这一问题的方法是在css的样式里面这样定义
h1
{ background: url(widget-image.gif) no-repeat;
}
h1 span
{
position: absolute;
left:-2000px;
}

 

那么带有你希望字体的图片现在就会在浏览器下正常显示了,而且由于我们采用了距离屏幕左边缘2000px的定义那个文本并不会显示在页面的图片上。
6. 另析CSS盒子(box)模型
box模型通常使用来修正ie6以前的浏览器中,边框(border)和补白(padding)被包含在元素的宽度值中而不是附加在宽度之外的问题。例如当定义一个container的尺寸的时候,你也许会采用下面的css规则:
#box
{
width: 100px;
border: 5px;
padding: 20px;
}
这个css规则会使用在

中。

 

这就意味着在所有ie6后的浏览器下box的总宽度是150px(100px的宽+2个5px宽的边框+两个20px宽的补白)。在这些浏览器中box的总宽度包括了补白和边框才是100px。box模型的定义可以修正这一问题,但是也会带来许多麻烦。

一个简单的修正法如下:
#box
{
width: 150px;
}
#box div {
border: 5px;
padding: 20px;
}

这个css规则会使用在

中。很完美。现在所有浏览器下的box宽度都是150px。
7. 中间对齐一个块(block)元素
假设你想要一个固定宽度的网页布局,主体部分以浮动元素形式显示在屏幕中央。你可以采用下面的CSS语句:
#content
{
width: 700px;
margin: 0 auto;
}
然后你会想要
包围住每一个页面的内容项,而且它有一个自动的左边缘和右边缘以确保它总是在屏幕中央。很简单。。。不过也不尽然,我们仍然得考虑一下ie6以前的浏览器的显示问题,因为这些浏览器不会按照css的控制进行中心对齐。你得改变一下上面的css语句:
body
{
text-align: center;
}
#content
{
text-align: left;
width: 700px;
margin: 0 auto;
}

 

这就会中心对齐主体部分,但是会导致文字都变成中心对齐的。为了修正这一问题,我们可以把文字对齐方式 text-align: left这条语句加到content div的css定义中去。
8. 采用css进行垂直对齐
表格(table)的垂直对齐不是个难题。为了使一个cell的所有子内容都在它中间一直线对齐,你可能会采用vertical-align: middle,但是这并不会在css布局中发挥作用。假设你想要一个高度是2em的菜单项,你或许会在css规则中使用vertical align的语句,这没什么作用,并且文字会全部显示在box元素的顶部。

唔。。不是你想要的效果吧。有什么解决方法么?那么你可以在css语句里面把行高设置为和box元素的高度一样的值。在上面的语句中box就是2em高,然后我们可以在它的css定义中加入 line-height: 2em,并且使text文本浮动(float)在box的中间。ok,效果达到了。
9. 在一个容器(container)里面采用CSS定位
CSS的一个很大的优点是你可以用它来设置一个对象(object)在页面中的绝对位置。当然你也可以(而且经常会被用到)在一个容器(container)里面设置对象(object)的位置。这很容易实现。只要采用下面的css语句:
#container
{
position: relative;
}

现在这个容器(container)内的任何一个元素都会变成相对于它的定位。你可以采用下面的html结构:

 

为了使导航的位置在距离它的父元素box左侧30px,顶部5px的位置,你可以使用下面的css语句:
#navigation
{
position: absolute;
left: 30px;
top: 5px;
}

完成!在这个特殊的例子中,你当然你可以使用margin: 5px 0 0 30px,但是其他一些情况下你最好还是采用position来定位。
10. 屏幕底部的背景颜色
CSS的一个缺点就是不能实现垂直方向的控制,这样就会导致不能用table进行布局的问题。假设你有一个包含网站导航的列要放在页面的左侧,这个页面背景是白色的,但是你想要左侧有一个蓝色背景。很简单,你只要采用下面这样的CSS语句:
#navigation
{
background: blue;
width: 150px;
}

采用上面的语句的话,会有一个问题:由于导航内容的每一个条目并不会延伸倒页面底部,就会产生它下方的部分仍然显示白色背景色。这样看起来好像被切断了一样的左侧蓝色背景色就会破坏你原本的设计意图。那么你能怎么办呢?

很不幸的是只有一个解决方法,那就是用一个蓝色的背景图来代替左侧的蓝色背景色。语句如下:
body
{
background: url(blue-image.gif) 0 0 repeat-y;
}
你放置在原来位置上的背景图的宽度正好是150px而且颜色也就用你想要的那个颜色。这样座的缺点就是你不能以em来定义左侧宽度,因为如果用户手动调整浏览器的文字大小的时候,左列的宽度也会改变,但是蓝色背景图像并不会跟着变换尺寸。

但是现在只有这么一个办法解决我们一开始列出的问题,所以如果你希望左列的颜色不一样的话最好用px来定义左列的宽度。

分类: CSS+DIV
好文要顶 关注我 收藏该文
雨中太阳
关注 - 4
粉丝 - 3
+加关注
0
0
« 上一篇:VS 2005 SP1简体中文版下载地址
» 下一篇:Div+CSS布局 网站设计的优点!

Feedback

#1楼5979022006/12/20 13:10:00   回复引用

2006-12-20 13:10 by Anders Cui
很不错,收藏了!
支持(0)反对(0)
http://pic.cnblogs.com/face/u12089.jpg
刷新评论刷新页面返回顶部
发表评论

昵称:

评论内容:
引用粗体链接缩进代码图片

不改了 退出 订阅评论

[Ctrl+Enter快捷键提交]

【推荐】超50万VC++源码: 大型组态工控、电力仿真CAD与GIS源码库!
【推荐】华为云11.11普惠季 血拼风暴 一促即发
【拼团】腾讯云服务器拼团活动又双叒叕来了!
【推荐】腾讯云新注册用户域名抢购1元起
腾讯云1008
最新IT新闻:
· 今日头条是否会打着电商的幌子做社交?
· 西湖大学成立,施一公:努力成为中国高等教育改革的探索者
· 贝皮科伦布号最全揭秘:几经推迟 终于等到花开
· 小牛上市 李一男的江湖路
· 奔跑的西湖大学:创民办研究型大学先河
» 更多新闻...
最新知识库文章:
· 阿里云的这群疯子
· 为什么说 Java 程序员必须掌握 Spring Boot ?
· 在学习中,有一个比掌握知识更重要的能力
· 如何招到一个靠谱的程序员
· 一个故事看懂“区块链”
» 更多知识库文章...

转载于:https://www.cnblogs.com/irischen/p/10-css.html

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

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

相关文章

Python 面向对象【1】

对象 属性 方法面向对象特征&#xff1a;分装 继承 多态【不同对象对同一方法响应不同行动】类定义class xxx:........类对象类对象支持两种操作&#xff1a;属性引用和实例化 属性引用 使用和 Python 中所有的属性引用一样的标准语法&#xff1a;类对象名.属性名 类对象创建…

福大软工 · 第八次作业(课堂实战)- 项目UML设计(团队)

1、队伍信息&#xff1a; 队伍名称&#xff1a;彳艮彳亍团队 学号名本次作业博客链接031602219奇豪(队长)https://www.cnblogs.com/S031602219/p/9822576.html041602209毓明http://www.cnblogs.com/mingsonic/p/9820702.html041602204水源http://www.cnblogs.com/littlenorthwe…

【转发】实现yolo3模型训练自己的数据集总结

原文链接&#xff1a;实现yolo3模型训练自己的数据集总结 经过两天的努力&#xff0c;借鉴网上众多博客&#xff0c;在自己电脑上实现了使用yolo3模型训练自己的数据集并进行测试图片。本文主要是我根据下面参考文章一步步实施过程的总结&#xff0c;可能没参考文章中那么详细&…

Django Form和ModelForm组件

Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时&#xff0c;都会写一些获取用户输入的标签并且用form标签把它们包起来。 与此同时我们在好多场景下都需要对用户的输入做校验&#xff0c;比如校验用户是否输入&#xff0c;输入的长度和格式等正不正确。如果用户输…

ESLint 规则详解

前端界大神 Nicholas C. Zakas 在 2013 年开发的 ESLint&#xff0c;极大地方便了大家对 Javascript 代码进行代码规范检查。这个工具包含了 200 多条 Javascript 编码规范且运行迅速&#xff0c;是几乎每个前端项目都必备的辅助工具。可是&#xff0c;这么多规则&#xff0c;每…

全文搜索引擎 ElasticSearch 还是 Solr?

原文链接 最近项目组安排了一个任务&#xff0c;项目中用到了全文搜索&#xff0c;基于全文搜索 Solr&#xff0c;但是该 Solr 搜索云项目不稳定&#xff0c;经常查询不出来数据&#xff0c;需要手动全量同步&#xff0c;而且是其他团队在维护&#xff0c;依赖性太强&#xff0…

NodeJS作为Web架构中间层的使用

截至2016年12月&#xff0c;中国网民规模已达7.31亿。传统的网站系统是否能够支撑得起如此庞大的且不断增长的用户访问并且为用户提供体验友好的页面&#xff1f; 一、传统的前后端&#xff1a; 二、传统的前后端分离问题&#xff1a; 性能问题&#xff1a; 1、渲染、数据都在…

windows server 2012 流媒体服务器搭建(直播与点播)

IIS Live Smooth Streaming&#xff08;实时平滑流式处理&#xff09;是微软下一代流媒体解决方案。该技术是在IIS web中集成媒体传输平台IIS media services&#xff0c;实现利用标准 HTTP Web 技术以及高级 Silverlight 功能&#xff0c;确保在互联上传输质量最佳、播放流畅音…

Vue warn Failed to mount component: template or render function not defined

问题如图&#xff0c;造成这类的问题一般有这么几个原因。 代码的拼写问题&#xff0c;当然这是最低级的错误vue定义的问题&#xff0c;这里我说明两点 在组件内部定义组件时&#xff0c;template 对应的必须是html字符串引用外部组件时&#xff0c;vue文件必须以template标签…

Python实现线性回归2,梯度下降算法

接上篇 4.梯度下降算法 《斯坦福大学公开课 &#xff1a;机器学习课程》吴恩达讲解第二课时&#xff0c;是直接从梯度下降开始讲解&#xff0c;最后采用向量和矩阵的方式推导了解析解&#xff0c;国内很多培训视频是先讲解析解后讲梯度下降&#xff0c;个人认为梯度下降算法更为…

mac 下用 brew 安装mongodb

mac 下安装mongoDB一般俩种方法. (1)下载源码,解压,编译,配置,启动 比较艰难的一种模式. (2)brew install mongodb ,然后就可以悠闲的品一口茶,顺便瞄一眼网易新闻,这是一种傻瓜模式. 但傻瓜模式也有人为干预的时候,粗略说一下使用brew 安装mongodb 1 zhangzhimoke:~/code$…

比较python类的两个instance(对象) 是否相等

http://www.yihaomen.com/article/python/281.htm 比较python类的两个instance(对象) 是否相等 作者:轻舞肥羊 日期:2012-10-25 字体大小: 小 中 大对于同一个Class,可以创建不同的实例(instance), 如何比较这两个 instance 是否相等呢&#xff1f;我们知道&#xff0c;对于计算…

Mybaits插入记录返回主键值

某些情况进行insert时不知道主键值&#xff08;主键为自增&#xff09;&#xff0c;例如系统新增用户时&#xff0c;有用户序号&#xff08;主键 自增&#xff09;&#xff0c;用户名&#xff0c;密码。插入时只需插入用户名和密码&#xff0c;之后取得mysql自增的序号。 如下为…

CAS单点登录原理简单介绍

1. SSO简介 1.1 单点登录定义 单点登录(Single sign on)&#xff0c;英文名称缩写SSO&#xff0c;SSO的意思就是在多系统的环境中&#xff0c;登录单方系统&#xff0c;就可以在不用再次登录的情况下访问相关受信任的系统。也就是说只要登录一次单体系统就可以。计划在项目中加…

前端跨域通信的几种方式

前言 前端通信类的问题&#xff0c;主要包括以下内容&#xff1a; 1、什么是同源策略及限制 同源策略是一个概念&#xff0c;就一句话。有什么限制&#xff0c;就三句话。能说出来即可。 2、前后端如何通信 如果你不准备&#xff0c;估计也就只能说出ajax。 3、如何创建Aja…

Luogu 3698 [CQOI2017]小Q的棋盘

BZOJ 4813 虽然数据范围很迷人&#xff0c;但是想树形$dp$没有前途。 先发现一个事情&#xff0c;就是我们可以先选择一条链&#xff0c;最后要走到这一条链上不回来&#xff0c;走到链上的点每一个只需要一步&#xff0c;而如果要走这条链之外的点&#xff0c;一个点需要走两步…

解决vue打包后静态资源路径错误的问题

vue项目完成的最后一步就是打包部署上线&#xff0c;但是打包部署的过程往往不是那么一帆风顺的&#xff0c;现将遇到问题和解决方案记录如下。 图片路径问题 起因&#xff1a; 页面中引入资源的方式往往有如下几种 * HTML标签中直接引入图片&#xff0c; 如 <img src&qu…

DOMBOM(source、methods、contents、Application)

何为DOM&#xff1f; Document Object Model Dom&#xff0c;是W3C组织推荐的处理可扩展标志语言的标准编程接口。在网页上&#xff0c;组织页面的对象被组织在一个树形结构中&#xff0c;用来表示文档中对象的标准模型就称为DOM。 可以认为DOM是页面上数据和结构的一个树形表示…

spring-注解---IOC(3)

spring--注解---IOC(3) package com.zwj.bean;public class Blue {public Blue(){System.out.println("blue...constructor");}public void init(){System.out.println("blue...init...");}public void detory(){System.out.println("blue...detory..…

在div中设置文字与内部div垂直居中

要实现如图一所示的结果&#xff1a; html代码如下&#xff1a; <!DOCTYPE html> <html><head lang"zh"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta charset"utf-8" /><title>商…