我在DIV
页面的两侧有两个HTML
个绝对位置,例如(EXAMPLE)
<div class="left">
</div>
<div class="right">
</div>
使用CSS
.left{
position:absolute;
left:10px;
top:10px;
width:100px;
height:100px;
background:red;
}
.right{
position:absolute;
right:10px;
top:10px;
width:100px;
height:100px;
background:blue;
}
有没有办法在左侧DIV
添加文字并将多余的文字流向右侧?我并没有坚持这两个DIV
,我只是在寻找一种解决方案,将多余的文本转移到另一个位置。
注意:我希望找到一个纯粹的CSS
解决方案,但这似乎是不可能的;那么,我正在寻找一个pure javascript
解决方案(不使用JS库)。
答案 0 :(得分:4)
CSS Regions(仍然是'草稿',但是)的目的是解决这个问题:
CSS区域模块允许内容跨多个区域流动 称为地区。这些地区不一定是连续的 文件订单。 CSS区域模块提供高级内容 流动机制,可以与定位方案相结合 由其他CSS模块定义,例如多列模块[CSS3COL] 或网格布局模块[CSS3-GRID-LAYOUT]来定位区域 内容流动的地方。
https://www.adobe.com/devnet/archive/html5/articles/css3-regions.html
的更多信息和教程答案 1 :(得分:1)
这是fixed-width
方法的一个。两列之间的间隙将等于主div的宽度。
<div class="container">
<div class="sides">The big text here.<div>
<div class="main"></div>
</div>
对于可变宽度,您需要JS或jQuery。
<强>更新强>
我已经将jQuery用于此目的,因为我发现纯JS难以找到解决方案。
function setGap() {
var width = $(".main").width();
$(".sides").css({
"-moz-column-gap": width + "px",
"-webkit-column-gap": width + "px",
"column-gap": width + "px"
});
}
$(window).resize(setGap);
setGap();
更新1:
function setGap() {
var width = document.getElementsByClassName("main")[0].offsetWidth;
var elem = document.getElementsByClassName("sides")[0];
var style = elem.getAttribute("style");
if (typeof style != "null") {
style =
"-moz-column-gap:" + width + "px; -webkit-column-gap:" + width + "px; column-gap:" + width + "px";
elem.setAttribute("style", style);
}
else {
style +=
"-moz-column-gap:" + width + "px; -webkit-column-gap:" + width + "px; column-gap:" + width + "px";
elem.setAttribute("style", style);
}
}
window.onresize = setGap;
setGap();
答案 2 :(得分:0)
到目前为止( 2012 )使用CSS,CSS3(带有2个独立元素)是不可能的
但使用 JS 您可以克隆内容并在正确的元素上使用scrollTop
:
<强> LIVE DEMO 强>
var d = document,
$left = d.getElementById('left'),
$right = d.getElementById('right'),
leftH = $left.offsetHeight;
$right.innerHTML = $left.innerHTML +'<p style="height:'+ leftH +'px;" />';
$right.scrollTop = leftH;
正如你所看到的,我还附加了一个空段落,以修复正确的元素需要scrollTop一些px
注意:将overflow:hidden;
添加到您的ID元素#left
和#right