这个问题需要一点解释。请多多包涵:
几个月前,我为网站上的一个部分设置了一个由三部分组成的标题。在此标题的左侧有一个标题,其内容可以更改。右侧是一个徽标,始终为 150 像素宽 x 60 像素高。它们之间是一组双线。像这样的东西:
[这是标题] ========================================= [这里的标志]
这个网站是响应式的,所以标题的整体宽度是可变的。
标题必须始终位于一行。包含双线的 div 需要更改大小以填充 Title 和 Logo 之间的空间。
我最初设置它,以便使用媒体查询和 calc(); 调整行的大小。功能。但是,该网站必须一直兼容到 IE 8,所以我最终编写了一些 JS 来让它工作。
这是一个本质上反映这种行为的 JS 小提琴:http: //jsfiddle.net/55u5mpu2/2/
function sizeLines() {
var logoSize = document.getElementById("the-logo").offsetWidth;
var titleWidth = document.getElementById("the-h2-Title").offsetWidth;
var totalWidth = document.getElementById("entire-Header").offsetWidth;
var offsetWidth = (logoSize + titleWidth);
var linesWidth = (totalWidth - offsetWidth - 20) + "px";
document.querySelector("#the-lines").style.width = linesWidth; }
window.onresize = sizeLines;
#entire-Header{
position: relative;
width: 100%;
height:40px;
}
#the-h2-Title {
position: relative;
float: left;
width: auto;
padding-right: 10px;
}
#the-lines {
border-top: 4px solid #000000 !important;
border-bottom: 4px solid #000000 !important;
height: 1px;
float: left;
margin-top: 23px;
min-width: 40px;
}
#the-logo {
position: relative;
max-width: 160px;
max-height: 50px;
float: right;
width: auto;
height: auto;
top: 0;
}
<div id="entire-Header">
<h2 id="the-h2-Title">
<div id="headlineTextbox">This is a Test Headline</div>
</h2>
<div id="the-lines"> </div>
<img id="the-logo" src="http://placehold.it/150x60">
</div>
问题是,脚本需要很长时间才能在慢速连接上加载,因此徽标会在一个奇怪的地方出现一段时间。因此,我试图找到一个纯粹的 CSS/HTML 解决方案来做与我的脚本相同的事情。
这里有相关的问题,但似乎没有一个适用。我不能在标题或线条上加上宽度,因为它们都是动态的。
表格似乎工作正常,但如果我输入 width: auto; 在两个 tds 上,事情失败了。
这是我创建的一个好的表格布局示例:http: //jsfiddle.net/d40a429s/1/
table {width: 100%;}
#test-title {width:20%;}
#lines-here {width:auto;}
#lines-here > div {border-top:4px solid #2a2a2a; border-bottom:4px solid #2a2a2a;height: 1px;}
#test-logo {width: 160px; padding-left: 10px;}
<div id="test-Section-Header">
<table>
<tbody>
<tr>
<td id="test-title"><h2>Test Title</h2></td>
<td id="lines-here">
<div></div>
</td>
<td id="test-logo">
<img src="http://placehold.it/150x60" alt="150 x 60 placeholder logo image">
</td>
</tr>
</tbody>
</table>
</div>
我试过把 position: absolute; 以及徽标和标题上的顶部/左侧或顶部/右侧,但我无法让中间 div 正确调整大小。
所以:如果有人在这里成功:关于我如何在没有 JS 的情况下让它工作的任何想法?或者也许是一种整理我的 JS 以使其运行得更快的方法?
谢谢!