下線の太さを制御しようとしていますが、テキストに準拠していない巨大な水平線が 1 つだけのようです。テキストと同じ太さでテキストに下線を引くにはどうすればよいですか:
<!DOCTYPE>
<html>
<head>
<style type="text/css">
.title {
border-bottom: 2px solid red;
}
</style>
</head>
<body>
<div class="title">test</div>
</body>
</html>
「div」タグに「border-bottom」スタイルが追加されています。デフォルトでは 'divs' が 'display: block;' に設定されているためです。div の幅は 100% です。これを解決するには、テキストを囲む別のタグを追加し、そのタグにクラスを指定します。
例えば:<div><span class="title">test</span></div>
新しいコード:
<!DOCTYPE>
<html>
<head>
<style type="text/css">
.title {
border-bottom: 2px solid red;
}
</style>
</head>
<body>
<div><span class="title">test</span></div>
</body>
</html>
display:inline-block;
CSSまたはfloat
要素に挿入するだけです。
問題はborder
、下線ではなく を使用していることです。境界線は要素の長さ全体に拡張されます。これは a のdiv
デフォルトwidth: 100%
です。
div
これを変更するには、明示的にの幅を制限するfloat
か、その を使用または変更する必要がありdisplay
ます。
使用width
:
div {
width: 10em; /* or whatever... */
}
使用float
:
div {
float: left; /* or 'right' */
}
使用display
:
div {
display: inline-block; /* or 'inline' */
}
もちろん、下線をテキストの下に効果的に配置し、おそらくテキストに「下線」を付けるのに役立つことを考えると (テキストが定義された幅よりも長い場合、定義された幅を使用して、デモの問題を参照してください)、デフォルトの動作は希望する動作と同じであるため、span
a ではなく for thisなどのインライン要素を単純に使用する方が簡単です。div
IE7 には、これを機能させる唯一の方法があるようです。
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
h1 {
border-bottom: 3px solid red;
display: inline;
}
</style>
</head>
<body>
<div><h1>Hello, world</h1></div>
</body>
</html>
em
の代わりに使用するとpx
、境界線はフォント サイズを採用します。
span {
font-size:5em;
border: solid black;
border-width:0 0 0.1em;
}
ここにフィドルがあります: Fiddle。