【转】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;类对象名.属性名 类对象创建…

【前端面试】HTML5+CSS3初级面试1

最近刚好在看前端的面试&#xff0c;把看到的内容总结一下&#xff0c;方便大家一起学习。 1、简单说一下对HTML5CSS3的了解。 HTML5和CSS3不仅是两项新的Web技术标准&#xff0c;而且代表了下一代HTML和CSS技术。其未来的发展前景已经可以预见&#xff0c;那就是HTML5必将被越…

福大软工 · 第八次作业(课堂实战)- 项目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;可能没参考文章中那么详细&…

详解 vue-cli 的打包配置文件代码(带注释)

一、前言 对于webpack基础不好&#xff0c;node指令不通的童鞋。估计对自己搭建Vue、react脚手架是相当头疼的&#xff0c;有种无从下手的感觉。然而&#xff0c;从头看这2块&#xff0c;耗时太长&#xff0c;而且说实话得练才行&#xff0c;不练练手看不明白。那大多数人就采取…

NoClassDefFoundError

技术之路最公平也最残酷的原因是&#xff1a;没有捷径&#xff0c;需要日积月累的积累&#xff0c;以及对技术持久的热情。NoClassDefFoundError这个错误一般就两种情况&#xff1a;1、没有引入相应的jar包2、两个jar包中都有这个class&#xff0c;无法确认是引用的哪一个&…

【记录一下】从0到1 我的python开发之路

请设计实现一个商城系统&#xff0c;商城主要提供两个功能&#xff1a;商品管理、会员管理。商品管理&#xff1a;- 查看商品列表 - 根据关键字搜索指定商品 - 录入商品会员管理&#xff1a;【无需开发&#xff0c;如选择则提示此功能不可用&#xff0c;正在开发中&#xff0c;…

Python10/22--面向对象编程/类与对象/init函数

类&#xff1a; 语法: class关键字 类名# 类名规范 大写开头 驼峰命名法class SHOldboyStudent: # 描述该类对象的特征 school "上海Oldboy" name "矮根" age 68 gender "unknown" # 在定义阶段 # 只要包含该类的py被…

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…

对局匹配

问题描述小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分&#xff0c;代表他的围棋水平。小明发现网站的自动对局系统在匹配对手时&#xff0c;只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K&#xff0c;系统都不会将他们匹…

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

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

Springboot项目修改html后不需要重启---springboot项目的热部署

一、spring-boot-devtools 在pom中直接引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> </dependency> 设置以下两项&#xff08…

Hibernate中session的get方法和load方法的区别

一.发送SQL时机&#xff1a; load方法采用延迟加载&#xff08;lazy懒加载&#xff09;&#xff0c;执行到这行代码的时候&#xff0c;不会发送SQL语句&#xff0c;当真正使用这个对象的数据&#xff08;对象的数据不包括主键&#xff09;的时候才发送SQL语句&#xff1b; get…

Node.js Web 开发框架大全《中间件篇》

这篇文章与大家分享优秀的 Node.js 中间件模块。Node 是一个服务器端 JavaScript 解释器&#xff0c;它将改变服务器应该如何工作的概念。它的目标是帮助程序员构建高度可伸缩的应用程序&#xff0c;编写能够处理数万条同时连接到一个&#xff08;只有一个&#xff09;物理机的…

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

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

团队项目第一篇——NABCD

团队名称&#xff1a;筑梦之舟 团队项目名称&#xff1a;跑跑 N&#xff08;Need&#xff09;需求&#xff1a; 有许多人在跑步时想了解自己的移动轨迹和跑步距离很不便利&#xff0c;无法了解跑步的日程&#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;个人认为梯度下降算法更为…