CSS网页设计中的解决方案

所属分类: 网页制作 / CSS 阅读数: 967
收藏 0 赞 0 分享

1、说明本文阐述了8条我们发现的在用CSS设计中有用的解决方案。
2、浏览器特定的选择器
查看原文:http://diger.cn/blog/?p=324
英文地址: http://www.solidstategroup.com/page/1592
翻译说明
这是Solid State Group网站上的一篇很友好的文章,解决了我在设计中遇到的很多问题,故在此我翻译其文,并对原作者表示非常感谢!

当你想在一个浏览器里改变样式而不像在其他浏览器中改变时,这些选择器很有用。
IE6以下
*html{}
IE 7 以下
*:first-child html {} * html {}
只对IE 7
*:first-child html {}
只对IE 7 和现代浏览器
html>body {}
只对现代浏览器(非IE 7)
html>/**/body {}
最新的Opera 9以下版本
html:first-child {}
Safari
html[xmlns*=”"] body:last-child {}
要使用这些选择器,请在样式前写下这些代码。例如:
#content-box {
width: 300px;
height: 150px;
}
* html #content-box {
width: 250px;
}
/* 重写上面的代码并且把宽度改为250PX
在IE6以下版本中适用。 */

3、在IE6中使用透明PNG图片
IE6的一个很难处理的BUG就是它不支持透明PNG图片。
你可能需要用一个重写的CSS的滤镜来解决这个问题:
*html #image-style {
background-image: none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=”fil
ename.png”, sizingMethod=”scale”);
}

#p#
4、去掉连接虚线框
当你点击链接时,Firefox会在链接周围产生一个虚线外框。

这个很好解决,只需在a标签中添加outline:none就可以了。
a{
outline:none;
}

5、对inline元素应用宽度。
如果你对一个inline元素使用宽度,它将只在IE6下起作用。
所以的HTML标签要么是Block的要么就是inline的。inline属性的标签有<span><a><strong>和<em>Block标签包括<div><p><h1><form>和<li>
你不能控制inilne标签的宽带,不过有一个方法是把标签属性从inline改为Block。
span{
width:150px;
display:block;
}

应用display:block能够把span标签变成block标签,从而控制它的宽度。
6、使一个固定宽度的网站居中。
为了让你的网站在浏览器中居中,可以为最外层Div添加position:relative属性,然后将margin设为auto。
#wrapper {
margin: auto;
position: relative;
}

7、图片替换技术
对于头部来说,永远是最好用文字而不是图片。在你必须要用图片的某个特殊地方最好使用隐藏文字的层的背景图片。这对于屏幕阅读和SEO非常有用,尽管依然使用很普通的文字,这可以联想到所有的优点。
HTML:
<h1><span>Main heading one</span></h1>
CSS:
h1 {
background: url(heading-image.gif) no-repeat;
}
h1 span {
position:absolute;
text-indent: -5000px;
}

正如你所见,我们对H1标签使用普通的HTML代码,用CSS来将图片替代文字。Text-indent把文字放到左边5000像素处,从而用户看不到它们。
#p#
8、最小宽度
IE的另外一个Bug就是它不支持min-width属性。min-width确实非常有用,特别是对于100%宽度的可变模板来说,因为他告诉浏览器停止收缩。
对于除IE6以外的所有浏览器来说你只需min-width:xpx;例如:
.container {
min-width:300px;
}

要让这些在IE6下起作用的话你要添加额外的努力!你需要创建两个DIV,一个包含着另一个。
<div class=”container”>
<div class=”holder”>Content</div>
</div>

然后你需要设置外面层的min-width:
.container {
min-width:300px;
}

现在又要IE hack起作用了,你需要写下以下代码:
* html .container {
border-right: 300px solid #FFF;
}
* html .holder {
display: inline-block;
position: relative;
margin-right: -300px;
}

当浏览器窗口调整外层宽度来适应直到它缩小到border的宽度时,这个时候它就不能够在缩小了。而holder层也会停止收缩。外层的边框宽度变成了内层的最小宽度。
9、隐藏水平滚动
要去除水平滚动条,可以在body中插入overflow-x:hidden属性。
body {
overflow-x: hidden;
}

这在你决意要用一个比浏览器款的图片或Flash时很有用。
更多精彩内容其他人还在看

js 解决隐藏与显示div的相关问题

我的导航中就有一栏产品中心下面用隐藏个div然后鼠标放上去就显示出来,但是导航那一块div一直出不来,什么都没有,很是郁闷不知道是什么原因
收藏 0 赞 0 分享

关于clearBoth在GOOGLE Chrome中的问题解决方法

下面这段CSS在IE中好好的,但在GOOGLE Chrome中总是不行,我调测了无数次。问题就出在 clearBoth 这个样式上,此问题如何解决,写下来详细介绍
收藏 0 赞 0 分享

用css margin去掉横排图片之间的间距

HTM,CSS,怎样去掉横排图片之间的间距,是我们的一大头疼问题,于是本人搜集整理一下,晒出来和大家分享,希望可以帮助你们
收藏 0 赞 0 分享

关于li:hover的怎么清除浮动问题实现代码

当鼠标移动上去时,周围显示一个方框,但是后面的会向后移动,如何才能使得当鼠标移上去时后面的li不浮动
收藏 0 赞 0 分享

ie6不支持两个连续并列class类名怎么解决

在网页布局中会使用到两个连续的class,但唯独ie6不支持,很郁闷,于是搜索整理下,晒出来和大家分享
收藏 0 赞 0 分享

如何在class内写xsl标记注意事项

想要在class中写一个xsl标记,想要知道应该如何来写出正确的代码语句,请详看本文
收藏 0 赞 0 分享

ie10 css hack 条件注释等兼容方式整理

ie10已经上线一段时间了,相信已经有一部分前端潮人体验过了,截至到现在,在ie6到ie9的浏览器各种各样的古怪行为,开发人员不得不使用条件注释,有条件的类,和其他特定于IE的css hack来解决
收藏 0 赞 0 分享

IE6双倍边距 IE6浏览器会出现双倍边距解决方法

所谓的IE6双倍边距就是指当元素有float属性,又有margin属性时,在IE6下面显示的margin的值是设置值的两倍,这个问题从有css技术时就已经诞生,本文将介绍详细解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

css 网页背景图片 怎样用CSS实现大背景网页效果

在网页设计制作中经常会遇到这样的问题:用图片做背景时,由于显示器分辨率太大或者图片尺寸太小,在页面的两边或者下部了没有背景图片,使页面变的很僵硬,于是搜集整理一些,晒出来和大家分享
收藏 0 赞 0 分享

CSS字体中英文名称对照表 CSS常用中文字体英文名称对照表

在CSS文件中,我们常看到有些字体名称变成了乱码,这是由于编写者将中文字体的名字直接写成了中文,为了避免这种状况出现,在CSS文件中使用中文字体时,最好使用中文字体的英文名称,需要的朋友可以注意下
收藏 0 赞 0 分享
查看更多