在h1标签上使用css样式,怎样才能隐藏文字?

html-css04

在h1标签上使用css样式,怎样才能隐藏文字?,第1张

1)一般来说,偏移掉字体的方式是使用:text-indent:-9999px (注意:只能用于block,table cells和inline-block)

text-indent:-9999px;的具体使用方法:把h1作为一个块来显示(display:block),指定长宽(和图片一样大小),然后指定h1的背景图片,也就是将我们需要的图片作为h1这个 标签的背景。而h1标签中插入的,仍然是作为字符形式出现的博客标题,然后用text-indent:-9999px将文字甩到屏幕看不到的地 方。(9999px应该是足够了,谁的屏幕也没那么大吧)

如:

<h1><a href=“http://www.seo100.net/”>博客园</a></h1>

在CSS文件中:(注意:将h1转化成block的话,他身后的的元素就被他赶到下一行了。如果正好这个h1后面,是一个按钮,就要用float来浮动以使他身后再出现簇拥者)

h1 a{height:30pxwidth:165pxfloat:lefttext-indent:-9999pxbackground-image:url(images/logo.gif)background-repeat:no-repeatdisplay:blockposition:relative

}

在h1使用上语义明确,符合语义化定义。text-indent就是首行缩进,大家都在中文段落,首行空两格用过它。这里通过负值缩进,使文字 超出可视区,而这时h1下的背景就显示出来了,h1中包含的<a>标签又不影响使用,对于隐藏文字“站点名称”应该是最佳方案了。但对于多段 文字的隐藏这个方法就不适合了。

另外,点击<h1><a>链接时,会产生一个虚线框,对于IE还好,没什么问题,虚线框只是在背影图片大小。但是Firefox就有些麻烦,它把缩进的文字范围也包含进来了,这样不是很美观。

于是需要屏掉点击时产生的虚线框,IE和FF屏虚线框方法不一样。IE采用的遍历方法(HTC,css表达式)有些耗系统资源,正好我们只需要隐藏FF下的虚线框就行了,IE就不管了,说一下Firefox如何去掉链接的虚线框的方法。

a{outline:none

}

outline是css3的一个属性,用的很少。声明,这是个不能兼容的css属性,在ie6、ie7、遨游浏览器都不兼容。只有ff,ie8在加了outline:none后会取消聚焦的虚线框。

2)使用overflow:hidden完美隐藏background之上的字体

line-height:0

font-size:0

overflow:hidden

或 (不大适合用在h1标签上).text-hidden {display:blockoverflow:hiddenwidth:0height:0

}

3)还有另外2种方法,不推荐使用。

1、display:none

这个大家普遍说法是,搜索引擎可能认为被隐藏的文字属于垃圾信息而被忽略,不为隐藏的对象保留物理占位空间。GG也搜CSS文件?不过如果用这个方法,<h1>如何设计,也是难题。

2、visibility:hidden

和display:none相对应,为隐藏的对象保留物理占位空间。

我们写了这么多的CSS,也多少了解了margin的一些特性,比如:

不过这里我们要说的当前元素的margin与其父级元素之间产生的效果。

我们以这个DOM结构来举例,.container为最外层的父级元素:

我们先看下上边距的情况,在 .user, .a1, .b1中,无论哪个元素,只要其父级元素没有设置padding-top或者没有其他元素(元素节点或者文本)的输出,那么当前元素的顶部会与其父级元素的顶部对齐,margin-top的边距就会上升到其父级;然后一直向上寻找,直到body元素。

比如上面的结构中,我们给.b1一个margin-top值,最终会上边距会给到了.container

如果我们只想给当前元素一个人margin-top值,并不想影响其父级元素怎么办呢?

1.给其直接父元素一个不为零的padding-top值;

2.给当前元素的前面添加一个高度不为零的兄弟元素,这个兄弟元素可以用 占位隐藏,但不能用 隐藏,因为 会使这个元素的高度变为0;

3.给父元素一个透明的边线: border:1px solid transparent

4.将父元素设置为绝对定位 position:absolute

5.父元素添加 overflow:hidden

6.最后就是考虑是否将margin-top切换成padding-top。

再一个就是下边距的问题,下边距会与上边距产生一模一样的问题,也可以按照这3种方式来解决。不过这里的下边距还有另外一个问题。

我们使用这条语句,将.container的最小高度设置为页面的高度:

我们再给.user或.a1或.b1一个 值,我们会发现,在.user的高度+下边距还远远没有超过.container的高度时,页面就已经产生滚动条了,说明margin-bottom已经作用到.container了。之前没注意到这个现象,是我们的产品在用之前的页面修改后作为新页面的时候,发现产生了滚动条,调试后才发现,原来是里面的一个元素有margin-bottom把整个页面撑开了,造成页面产生了滚动条,底部有一部分的白底。

这个怎么解决呢,解决方法依然同上!