この質問には少し説明が必要です。我慢してください:
数か月前、私は Web サイトのセクションに 3 つの部分からなるヘッダーを設定しました。このヘッダーの左側にはタイトルがあり、その内容は変更できます。右側は常に幅 150 ピクセル、高さ 60 ピクセルのロゴです。それらの間には二重線のセットがあります。このようなもの:
[これがタイトルです] ======================================= [ここにロゴ]
この Web サイトはレスポンシブなので、ヘッダー全体の幅は可変です。
見出しは常に 1 行である必要があります。タイトルとロゴの間のスペースを埋めるために、二重線を保持する div のサイズを変更する必要があります。
最初に、メディア クエリと calc(); を使用して行のサイズが変更されるように設定しました。関数。ただし、Web サイトは 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 の 2 つで、失敗します。
私が作成したテーブルレイアウトの例を次に示します: 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 を整理して高速に実行する方法はありますか?
ありがとう!