自适应绝对定位的解决方法

可能大家经常会有这样的需求: 某段文字有个配图,配图和文字段落保持在同一水平线上,但窗体的高度和宽度不固定,需要自适应。

像下面这张图,图片要跟红色的文字保持在同一水平线:


最终代码实现的效果:Auto Position
我们通常的做法是这样的:

<!-- html structure -->
<div id="test">
    <p>
        <img src="img1.jpg" alt="sofish" />
        文字文字文字...
    </p>
    <p>
        <img src="img1.jpg" alt="sofish" />
        文字文字文字...
    </p>
    ...
</div>
/* CSS Code */
/* 给每个 P 设置相对定位 */
#test p{position:relative;padding-right:100px;}

/* 给每个 img 设置相对于 P 的绝对定位 */
#test img{
    position:absolute;
    top:0;
    right:0;
}
是的。就是这样。其实,这已经是一个非常棒的实践了。不使用 float,代码也很简单。这也是我一直推荐使用的。不过,其实,POSITION 属性里面还有一个不常被大家发现的 TRICK。其实我们可以这样写:

/* 给容器设置相对定位 */
#test{position:relative;padding-right:100px;}

/* 给每个 img 设置相对于容器的绝对定位 */
#test img{
    position:absolute;
    /* top:0;  不要设置顶对齐,这样就会自适应定位了 */
    right:0;
}
这样减少了选择器的渲染,只有一个父容器;另外又减少了字节,不需要 top:0; 虽然性能提升和流量节省并不是很明显,但如果有更棒的方法,以为何不使用呢?

 

时间: 2024-09-30 04:10:45

自适应绝对定位的解决方法的相关文章

CSS布局中自适应高度的解决方法

css|解决|自适应 这是div+css布局中经常会碰到的基础问题,个人觉得采用背景图填充的方法,还是比较简单和切实可行的.最终效果. CSS源代码: body{ background: #EDEDED; font-size: 70%; font-family: Arial, Helvetica, sans-serif; line-height: 130%; color: #666666; margin: 0; padding: 0; text-align: center; } #layout{

Div即父容器不根据内容自适应高度的解决方法

解决|自适应 Div即父容器不根据内容自适应高度,我们看下面的代码: <div id="main"><div id="content"></div></div> 当Content内容多时,即使main设置了高度100%或auto.在不同浏览器下还是不能完好的自动伸展.内容的高度比较高了,但容器main的高度还是不能撑开. 我们可以通过三种方法来解决这个问题. 一,增加一个清除浮动,让父容器知道高度.请注意,清除浮动的容

android应用自适应多分辨率的解决方法

1. 首先是建立多个layout文件夹(drawable也一样). 在 在res目录下建立多个layout文件夹,文件夹名称为layout-800x480等.需要适应那种分辨率就写成什么. 注意:          a.   较大的数字要写在前面:比如layout-854x480而不能写layout-480x854.          b.   两个数字之前是小写字母x,而不是乘号. 2. 在不能的layout下调整layout 的长宽等各种设置.以适应不同的分辨率. 3 最后需要在Androi

css float引起div自适应高度无效解决方法

 代码如下 复制代码 <style> #main{float:left;min-height:500px;} #l{float:left;margin-bottom:10px;margin-right:10px;padding:6px 10px;width:117px;} #r{float:right;margin-right:10px;padding-top:10px;width:864px;overflow:hidden;} </style>   <div id=&quo

div下图片自适应解决方法

解决|自适应 我们(特别是像我一样的菜鸟)经常会遇到一个问题--图片自适应.这个问题是很普遍的.在文章区,在论坛,可以这么说:哪儿需要上传图片,哪儿就存在这个问题,而论坛上也不时有人询问.为什么?原因很简单,我们不能要求网页编辑或者你的论坛会员都会裁剪图片或者了解最基本的html代码--尽管这并没有多少技术含量. 以前的解决方法主要是利用js来实现,但用过的人都知道该办法有点繁琐.还有一种是在外部容器定义over-flow:hidden.但这种办法只会切割图片而不会自动适用.下面的办法的出现应该

学习CSS技巧:DIV下图片自适应解决方法

css|技巧|解决|自适应 我们(特别是像我一样的菜鸟)经常会遇到一个问题--图片自适应.这个问题是很普遍的.在文章区,在论坛,可以这么说:哪儿需要上传图片,哪儿就存在这个问题,而论坛上也不时有人询问.为什么?原因很简单,我们不能要求网页编辑或者你的论坛会员都会裁剪图片或者了解最基本的html代码--尽管这并没有多少技术含量. 以前的解决方法主要是利用js来实现,但用过的人都知道该办法有点繁琐.还有一种是在外部容器定义over-flow:hidden.但这种办法只会切割图片而不会自动适用.下面的

为什么有些IE浏览器不能显示绝对定位的内容?是版本问题?还是其他,有没有解决方法?

问题描述 为什么有些IE浏览器不能显示绝对定位的内容?是版本问题?还是其他,有没有解决方法? 解决方案 你的版本是什么,IE8或者以上用F12功能看下css怎么应用的. 解决方案二: 需要ie版本信息和使用的布局样式,再详细介绍下 解决方案三: IE绝对定位元素神秘消失或被遮挡的解决 在进行网页布局设计的时候,经常会根据需要设置相对,绝对以及浮动定位最近突然发现了一个奇妙的现象:IE绝对定位元素神秘消失或被遮挡 首先是IE绝对定位元素神秘消失设置的绝对定位元素突然从IE浏览器下消失了,然而火狐能

Iframe实现跨浏览器自适应高度解决方法_jquery

本文以实例形式讲述了Iframe实现跨浏览器自适应高度解决方法,非常具有实用价值.分享给大家供大家参考之用.具体方法如下: 该方法使用了jQuery,因此需要在iframe的src页面里面引入jQuery. 父页面里面相对简单一点,主要包含以下代码: <iframe id="if1" scrolling="no" src="2.html"></iframe> 在iframe的src页面里面代码如下: <script

div+css的兼容性问题和解决方法

1. 默认的内外边距不同 问题: 各个浏览器默认的内外边距不同 解决: *{margin:0;padding:0;}   2. 水平居中的问题 问题: 设置 text-align: center    ie6-7文本居中,嵌套的块元素也会居中 ff /opera /safari /ie8文本会居中,嵌套块不会居中 解决: 块元素设置  1.margin-left:auto;margin-right:auto 2.margin:0 auto; 3. <div align="center&qu