目次
1. 現象の説明
2.スペースを削除する方法
3. 負のマージン値を使用する
4. クローズドラベルにカプセルを食べさせます
5. フォントサイズ:0 を使用します
六、使用letter-spacing
七、使用word-spacing
八、其他成品方法
ホームページ ウェブフロントエンド htmlチュートリアル [Transfer] インラインブロック要素間のスペースを削除する N 個の方法

[Transfer] インラインブロック要素間のスペースを削除する N 個の方法

Sep 11, 2016 am 11:19 AM

Zhang Xinxu-Xin Space-Xin Life [http://www.zhangxinxu.com] より

1. 現象の説明

本当の意味でのインラインブロックでは、改行またはスペースで区切って表示されると、水平方向に表示される要素間に隙間が生じます。

非常に単純な例です。
リーリー

距離はここです~~
[Transfer] インラインブロック要素間のスペースを削除する N 個の方法

CSS を使用して非インラインブロックの水平要素をインラインブロックの水平要素に変更すると、次の問題も発生します。

リーリー

inline-block水平元素间的间距示意 张鑫旭-鑫空间-鑫生活

ここをクリックしてください: 要素間のインラインブロック間隔のデモ

この種のパフォーマンスは、仕様に準拠しているべきものです (バグだと思う人がいたら、それは()ay()oy)。

ただし、この種のスペースはレイアウトや互換性の処理に影響を与える場合があります。どうすればよいでしょうか。 N 個のメソッドを以下に示します (追加歓迎)。

2.スペースを削除する方法

要素間の空白の原因はタグセグメント間の空白であるため、HTMLで空白を削除すると自然な空白がなくなります。コードの読みやすさを考慮すると、コードを 1 行で記述することは明らかにお勧めできません:

リーリー

または:

リーリー

または HTML コメントを使用します:

リーリー

待ってください。

3. 負のマージン値を使用する

リーリー

負のマージン値のサイズは、コンテキストのフォントとテキスト サイズに関連しています。対応する間隔のサイズ値は、以前の記事「display:inline- に基づくリスト レイアウト」のパート 6 の統計表で見つけることができます。ブロック":
[Transfer] インラインブロック要素間のスペースを削除する N 個の方法

たとえば、12 ピクセル サイズのコンテキストの場合、Arial フォントの margin负值为-3像素,Tahoma和Verdana就是-4像素,而Geneva为-6 ピクセル。

外部環境の不確実性と最後の要素の余分な親マージン値のため、この方法は大規模な使用には適していません。

4. クローズドラベルにカプセルを食べさせます

次のように処理します:

リーリー

IE6/IE7 および Mengniu で開発された他のブラウザーとの下位互換性を保つために、最後のリスト タグの終了 (終了) タグは失われることができないことに注意してください。

HTML5 では次のことを直接行います:

リーリー

まあ、少し奇妙に感じますが、大丈夫です。

ここをクリックしてください: インラインブロック要素の間隔を削除するための終了タグなしのデモ

无闭合标签与inline-block水平元素间距的去除 张鑫旭-鑫空间-鑫生活

5. フォントサイズ:0 を使用します

次のようなコード:

リーリー

この方法は、基本的に、ほとんどのブラウザーでインラインブロック要素間の間隔を解決できます (IE7 などのブラウザーでは、1 ピクセル間隔になる場合があります)。ただし、ブラウザである Chrome にはデフォルトで最小フォント サイズ制限があるため、互換性を考慮して次のコードも追加する必要があります:

リーリー

您可以狠狠地点击这里(去年制作的一个简单demo):font-size:0清除换行符间隙demo

补充:根据小杜在评论中中的说法,目前Chrome浏览器已经取消了最小字体限制。因此,上面的-webkit-text-size-adjust:none;代码估计时日不多了。

六、使用letter-spacing

类似下面的代码:

.space {
    letter-spacing: -3px;
}
.space a {
    letter-spacing: 0;
}
ログイン後にコピー

根据我去年的测试,该方法可以搞定基本上所有浏览器,包括吃“东鞋”、“西毒(胶囊)”、“南地(沟油)”、“北钙(三鹿)”的IE6/IE7浏览器,不过Opera浏览器下有蛋疼的问题:最小间距1像素,然后,letter-spacing再小就还原了。

七、使用word-spacing

类似下面代码:

.space {
    word-spacing: -6px;
}
.space a {
    word-spacing: 0;
}
ログイン後にコピー

一个是字符间距(letter-spacing)一个是单词间距(word-spacing),大同小异。据我测试,word-spacing的负值只要大到一定程度,其兼容性上的差异就可以被忽略。因为,貌似,word-spacing即使负值很大,也不会发生重叠。

您可以狠狠地点击这里:word-spacing与元素间距去除demo

与上面demo一样的效果,这里就不截图展示了。如果您使用Chrome浏览器,可能看到的是间距依旧存在。确实是有该问题,原因我是不清楚,不过我知道,可以添加display: table;display:inline-table;让Chrome浏览器也变得乖巧。

.space {
    display: inline-table;
    word-spacing: -6px;
}
ログイン後にコピー

八、其他成品方法

下面展示的是YUI 3 CSS Grids 使用letter-spacingword-spacing去除格栅单元见间隔方法(注意,其针对的是block水平的元素,因此对IE8-浏览器做了hack处理):

.yui3-g {
    letter-spacing: -0.31em; /* webkit */
    *letter-spacing: normal; /* IE < 8 重置 */
    word-spacing: -0.43em; /* IE < 8 && gecko */
}

.yui3-u {
    display: inline-block;
    zoom: 1; *display: inline; /* IE < 8: 伪造 inline-block */
    letter-spacing: normal;
    word-spacing: normal;
    vertical-align: top;
}
ログイン後にコピー

以下是一个名叫RayM的人提供的方法:

li {
    display:inline-block;
    background: orange;
    padding:10px;
    word-spacing:0;
    }
ul {
    width:100%;
    display:table;  /* 调教webkit*/
    word-spacing:-1em;
}

.nav li { *display:inline;}
ログイン後にコピー

也就是上面一系列CSS方法的组组合合。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

&lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

&lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

&lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

&lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

See all articles