打印

[求助] 如何 实现左文右图板块? [ 已解决 ]

经过帮助及本人的努力问题已得到解决,具体答案请参考 18楼

----------------------- 以下为原问题 ---------------------------

 提示:您可以先修改部分代码再运行
[ 本帖最后由 gulu77 于 2008-4-9 14:39 编辑 ]
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!

TOP



 提示:您可以先修改部分代码再运行
复制内容到剪贴板
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>none</title>
<style type="text/css" media="screen">
<!--
@charset "utf-8";
* {margin:0;padding:0;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:small;}
.text_td {width:100px;}
td {vertical-align:top;}
-->
</style>
<script type="text/javascript">
<!--
-->
</script>
</head>
<body>
<table>
<tbody>
<tr>
<td class="text_td">左文右图左文右图左文右图左文右图左文右图左文右图左文右图左文右图左文右图左文右图左文右图左文右图左文右图左文右图左文右图左文右图左文右图左文右图左文右图</td><td><img src="http://img.vlongbiz.com/news/h008/h04/img200709040944560969.jpg" /></td>
</tr>
</tbody>
</table>
</body>
</html>

TOP

引用:
原帖由 gulu77 于 2008-4-8 16:00 发表
[html]

实现左文右图板块
.block {padding:5px; width:400px; border:1px solid #ccc; float:left;}
.block .photo {float:left;}
.block .cont {float:right; }
Post browser spec ...
.block .cont {margin-left:160px; }//160是你图片的宽度

TOP

谢谢楼上两位的回复,但你们的答案, 不是我想要的..

制作要求如下:

1.   必须要是以下的XHTML架构

<div class="block">
       <div class="photo"><img /></div>
       <div class="cont">text...</div>
</div>

2.    .block 里的元素 宽度都不固定的, 所以 .photo .cont 不能出现 width 或 margin 之类的固定值!

[ 本帖最后由 gulu77 于 2008-4-8 17:22 编辑 ]

TOP

文字也不要width? 从胡同里出来吧

TOP

期待一下这个题目怎么实现

TOP

block内部不能出现width 那block可以不?
学习中

TOP

.block 可以出现width

TOP

两个容器都要自适应宽度,只有用JS了
致力于web2.0研究

TOP



 提示:您可以先修改部分代码再运行

TOP

楼上的和我做的差不多,慢了一步,呵呵!

 提示:您可以先修改部分代码再运行
致力于web2.0研究

TOP

用float不行么?

TOP

楼主要求的还要符合W3C标准的呀,忽忽
★FU㈩加油滴━★

TOP

10楼和11楼 都改变了 html 的嵌套结构。并且那是围绕的效果不是左右分列。

做的不是特别仔细,主要为了体现原理。其实就是利用了 display:table-cell 将那个两个 div 变成了 td 。

支持 IE6 IE7 Firefox,主要增加了2句CSS样式:.block div{ display:table-cell; *display:block; padding:5px; } .block .photo>img{ float:left; position:relative; top:-1em; *top:0;}

 提示:您可以先修改部分代码再运行
支持 IE6 IE7 Firefox Opera,为了支持 Opera 增加一句 <h6 style="height:0px; overflow:hidden; padding:0; margin:0;"> </h6> 来帮助 Opera,应该有更好的办法,不用插入垃圾代码,但懒得想了。

 提示:您可以先修改部分代码再运行
[ 本帖最后由 wiseinfo 于 2008-4-9 01:27 编辑 ]

TOP

回复 wiseinfo 在 14# 的帖子

楼上的,你好像没有明白楼主的意思,他是要“左文右图”,而不是你的“左图右文”啊!
致力于web2.0研究

TOP

op下未试~右图左文同理实现

 提示:您可以先修改部分代码再运行

TOP

引用:
原帖由 by0001 于 2008-4-9 09:21 发表
楼上的,你好像没有明白楼主的意思,他是要“左文右图”,而不是你的“左图右文”啊!
看他自己的示意图和他自己的代码你也就明白。他的题目写的左右有问题。还有不在左右,而是实现原理。

TOP

问题已得到解决谢谢楼上各位 (^_^)



 提示:您可以先修改部分代码再运行
解决方案:

左图右文板块http://blog.gulu77.com/demo/200804/imgfloatleft.html

左文右图板块http://blog.gulu77.com/demo/200804/imgfloatright.html

针对IE的http://blog.gulu77.com/demo/200804/floattest.html

问题解决思路:
IE系列浏览器-
在.block内的div设置浮动后问题得以解决。(据我个人理解,IE的解析为 给同等级元素设置float后,自动赋予对象,所谓的100%高度空间!所以内容才会分为左右两块)

非IE浏览器-
在非IE中则没有float 100%高度空间的解析, 而我采用了wiseinfo所说的用display:table-call;把.block内的div作为表格单元格显示问题得以解决

延伸思考:
为什么在IE中同等级元素设置float后,会占100%高度空间,这样的解析在非IE中确没有,到底谁的解析才是正确? 他们的解析机制是什么?

文章已发表至我的blog http://blog.gulu77.com/?p=40

[ 本帖最后由 gulu77 于 2008-4-9 14:33 编辑 ]

TOP

.block div{ display:table-cell; padding:5px; vertical-align:top; *float:left}

不知道红色处的代码是什么意思,是所有元素都向左浮动吗?去掉红色部分在IE下效果不对的。

希望有人帮我解释一下,谢了~~

TOP