Heim Web-Frontend CSS-Tutorial Das CSS-Inline-Block-Attribut ist mit verschiedenen Browsern kompatibel und die Lösung für das Problem der horizontalen Lücke

Das CSS-Inline-Block-Attribut ist mit verschiedenen Browsern kompatibel und die Lösung für das Problem der horizontalen Lücke

Sep 13, 2018 pm 03:58 PM
css

In diesem Kapitel wird Ihnen das CSS-Inline-Block-Attribut vorgestellt, das mit allen Browsern kompatibel ist, und die Lösung für das Problem der horizontalen Lücke. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

Inline-Block-Attributbeschreibung:

Nach dem Festlegen dieses Werts wird das Objekt selbst als Inline-Objekt gerendert , aber der Inhalt des Objekts wird als Blockboxen gerendert. Mit anderen Worten, das Element mit diesem Wertsatz entspricht einem Inline-Box-Element, das Blockboxen enthalten kann. Obwohl IE6 und 7 Inline-Block unterstützen können, ist display:inline-block in ihren Augen nur eine Bedingung zum Auslösen des Layouts und nicht etwas, das vom W3C festgelegt wurde. Wir können jedoch einfach das Layout des IE verwenden, um den Effekt von display:inline-block zu simulieren.

Inline-Block-Kompatibilitätslösungen für verschiedene Browser

Es gibt zwei Methoden: Beide lösen zuerst das IE-Layout aus und definieren dann die Anzeige: inline, lassen Sie das Blockelement selbst wie folgt als Inline-Objekt gerendert werden:

1 Unter allen Attributen, die das Layout auslösen können, nach Ausschluss von position:absolute und float sowie width und height das Die einzigen, die verwendet werden können, sind display:inline-block, wie folgt:

fn-ib{display:inline-block;}fn-i{*display:inline;}
Nach dem Login kopieren

Beachten Sie, dass die beiden Anzeigen nacheinander in zwei CSS-Anweisungen platziert werden müssen, um eine Wirkung zu erzielen. Wenn display:inline-block ist Zuerst definiert, dann die Anzeige wieder auf Inline setzen oder blockieren, das Layout verschwindet nicht.

2. Die erste Methode besteht darin, es in zwei CSS-Anweisungen einzufügen, wenn Sie nicht vorsichtig sind. Das Layout von IE ist wie folgt:

fn-ibz{display:inline-block;*display:inline;*zoom:1}
Nach dem Login kopieren

Aus dem Obigen können wir ersehen, dass IE6 und 7 das Inline-Block-Attribut unterstützen, aber nicht den W3C-Effekt erzielen. Daher verwenden wir Layout und Display: Inline, um den Effekt des Inline-Block-Attributs zu simulieren .

Okay, jetzt gibt es eine Lösung für das Inline-Block-Problem in verschiedenen Browsern. Die nächste Lösung ist: Schauen Sie sich die folgenden Beispiele in verschiedenen Browsern an:

Das CSS-Inline-Block-Attribut ist mit verschiedenen Browsern kompatibel und die Lösung für das Problem der horizontalen Lücke

Die Lücke zwischen Inline-Block-Elementen in verschiedenen Browsern liegt in der Natur von Inline selbst und nicht in einem Fehler.

Dann haben wir festgestellt, dass in Browsern, die das Attribut display:inline-block unterstützen, die Inline- und Block-Elemente angezeigt werden :inline -block erzeugt horizontale Lücken; und in IE67 und IE (Q) gibt es nach der Simulation zwei Situationen: display:inline-block: Blockelemente haben nach der Simulation keine Lücken, während Inline-Elemente Lücken haben. Warum? Hier ist ein weiterer Wissenspunkt: Inline-Elemente sind standardmäßig mit Lücken angeordnet. Daher wird das obige Phänomen wie folgt erklärt:

Bei Browsern, die das Attribut display:inline-block unterstützen, entspricht das Element selbst dem Inline-Element, daher gibt es in modernen Browsern Lücken in der simulierten Lösung. Denn obwohl das Festlegen von display:inline für ein Blockelement dazu führen kann, dass es horizontal wie Inline-Elemente angeordnet wird, ist das Blockelement immer noch ein Blockelement und wird nicht wirklich zu einem Inline-Element, sodass keine Lücke entsteht.

Die Hauptursache für Lücken liegt darin, dass Zeichen wie Zeilenumbrüche, Leerzeichen, Tabulatoren usw. in HTML Leerzeichen erzeugen.

Lösung für das horizontale Lückenproblem zwischen Inline-Blöcken

Wir wissen oben, dass die Hauptursache der Lücke das Newline-Zeichen in HTML ist Gibt es kein Problem, wenn wir die Leerzeichen zwischen den Beschriftungen entfernen? Der Code lautet also wie folgt:

HTML-Code lautet wie folgt:

<div class="parent">
    <strong class="fn-ibz">内联元素</strong><strong class="fn-ibz">
    内联元素</strong><strong class="fn-ibz">
    内联元素</strong><strong class="fn-ibz">
    内联元素</strong>
</div>
<div class="parent">
    <div class="fn-ibz">块元素</div><div class="fn-ibz">
    块元素</div><div class="fn-ibz">
    块元素</div><div class="fn-ibz">
    块元素</div>
</div>
Nach dem Login kopieren

Rendering:

Das CSS-Inline-Block-Attribut ist mit verschiedenen Browsern kompatibel und die Lösung für das Problem der horizontalen Lücke

Ändern Sie die DOM-Struktur, um das zu lösen Problem zwischen Inline-Block-Lückenproblem

Ich habe den obigen DEMO-Code verarbeitet, daher können wir die Lücke nicht sehen. Aber hier ist das Problem:

Wenn es statisch ist, gibt es eigentlich kein großes Problem. Was ist, wenn es direkt im Hintergrund generiert wird? Oder in Zukunft werden Wartungskollegen sehen, wie dieser Code so geschrieben ist, und ihn wieder ändern. Daher ist die Verwendung von CSS zur Lösung immer noch der beste Weg. Als ich diese Situation zum ersten Mal sah, war meine erste Reaktion, negative Margen zu verwenden, um sie zu lösen. Später, nachdem ich die Grundursache der Lücke erfahren hatte, hatte ich das Gefühl, dass die Methode mit negativen Margen das Problem zwar lösen konnte, aber nicht das Richtige brachte Lösung Die Ursache der Lücke waren die Zeilenumbrüche zwischen HTML-Zeichen, Leerzeichen, Tabulatoren und anderen Zeichen, und die Lücken ändern sich mit Änderungen in Attributen wie der Schriftgröße. Sie können also CSS verwenden, um die Zeichengröße zu steuern, um eines zu finden. Unter Bezugnahme auf die Lösung in YUI3 erhielt ich den folgenden Code:

.f-w-p-parent{
    font-size:0;
    letter-spacing:-4px;
    *letter-spacing:normal;
    *word-spacing:-1px;
}
.f-w-p-inner{
    font-size:12px;
    letter-spacing:normal;
    *word-spacing:normal;
    vertical-align: top;
}
Nach dem Login kopieren

Rendering:

Das CSS-Inline-Block-Attribut ist mit verschiedenen Browsern kompatibel und die Lösung für das Problem der horizontalen Lücke

Lösung für CSSinline-Block-Lücke

Dann analysieren wir die Funktion jeder Codezeile:

  1. Die Rolle der Schriftgröße: Da sie durch Zeichen verursacht wird, setzen Sie deren Schriftgröße natürlich auf 0 und setzen Sie dann die Schriftgröße innerhalb des Elements wieder auf ihre ursprüngliche Größe zurück. Mit Ausnahme von IE6, 7 und anderen Browsern mit niedrigeren Versionen von Chrome und Safari verschwindet die Inline-Block-Lücke in diesem Schritt (niedrigere Versionen von Chrome können nicht zulassen, dass Text nach dem Festlegen von „font-size:0“ frei erweitert und verkleinert wird, also ist dies nicht der Fall empfohlen)

  2. Die Rolle des Wortabstands: Im IE6-, 7- und IE (q)-Modus gibt es immer einen Abstand von 1 Pixel, und dann verwenden wir Wortabstand: -1 Pixel zu lösen (Der Abstand zwischen Wörtern ist nur für Englisch nützlich, Chinesisch hat kein Wortkonzept) und bringt dann das Element in den Normalzustand zurück. Natürlich ist es auch möglich, margin:0 0 0 -1px zu verwenden (es scheint weniger Code zu geben ...)

  3. Die Rolle des Buchstabenabstands: nur gering In den Chrome- und Safari-Versionen dient der Buchstabenabstand dazu, den Abstand zwischen Wörtern anzupassen, da Buchstabenabstand, Schriftgröße, Schriftfamilie und sogar verschiedene Browser unterschiedlich sind, so die „Datentabelle zur Beziehung zwischen“. „Buchstabenabstand und Schriftgröße/Schriftart“ Durch Einstellen der oben genannten Daten kann die Lücke geschlossen werden. Da Buchstabenabstand und Wortabstand zusammen leicht zu Problemen führen können, wurde der Code *letter-spacing:normal;

  4. Die Rolle von Vertical-Align:Top: Die letzte Funktion hat nichts mit Lücken zu tun. Das Festlegen von Vertical-Align:Top besteht darin, die Inline-Block-Elemente an der oberen Grundlinie auszurichten. Das Vertical-Align-Attribut ist nur für Inline- und Inline-Block-Elemente gültig.

Vorteile des Inline-Blocks

Es wird hier nicht erwähnt, dass das Inline-Block-Layout das Durchsuchen erspart im Vergleich zum Floating-Layout Um die Serverressourcen zu reduzieren, müssen wir das Floating-Layout aufgeben und das Inline-Block-Layout übernehmen (und die offizielle Website sagt dies nicht). Schließlich hat das Aussehen einer Sache ihre Bedeutung, und das Floating-Layout ist auch das bekannteste Layout-Methode. Nach einer detaillierten Analyse der spezifischen Situation ist es also klar, dass die schwebende Layoutstruktur klarer ist, aber Sie müssen Inline-Block verwenden und viel redundanten Code hinzufügen, selbst wenn das Inline-Block-Layout wirklich am wenigsten ist ressourcenintensiv wie legendär, aber würde die Vergrößerung Ihres HTML-Codes nicht auch Ressourcen verbrauchen?

Selbst wenn es das gibt, glaube ich nicht, dass es groß ist. Wenn Sie also absolute Positionierung verwenden, verwenden Sie Floating. Wenn Sie auf eine Situation stoßen, in der das Problem besser gelöst werden kann, verwenden Sie es mutig. Schließlich hat der Inline-Block immer noch einige Vorteile gegenüber der schwebenden und absoluten Positionierung.

  1. Sie können Vertical-Align und Text-Alignment verwenden, um eine vertikale, horizontale, beidseitige, Grundlinienausrichtung usw. zu erreichen, und es ist auch adaptiv.

  2. Aus eigenen Gründen eignet es sich besonders für flüssiges Layout. Höhe und Breite müssen nicht festgelegt werden.

Das obige ist der detaillierte Inhalt vonDas CSS-Inline-Block-Attribut ist mit verschiedenen Browsern kompatibel und die Lösung für das Problem der horizontalen Lücke. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So schreiben Sie geteilte Zeilen auf Bootstrap So schreiben Sie geteilte Zeilen auf Bootstrap Apr 07, 2025 pm 03:12 PM

Es gibt zwei Möglichkeiten, eine Bootstrap -Split -Zeile zu erstellen: Verwenden des Tags, das eine horizontale Split -Linie erstellt. Verwenden Sie die CSS -Border -Eigenschaft, um benutzerdefinierte Style Split -Linien zu erstellen.

Die Rollen von HTML, CSS und JavaScript: Kernverantwortung Die Rollen von HTML, CSS und JavaScript: Kernverantwortung Apr 08, 2025 pm 07:05 PM

HTML definiert die Webstruktur, CSS ist für Stil und Layout verantwortlich, und JavaScript ergibt eine dynamische Interaktion. Die drei erfüllen ihre Aufgaben in der Webentwicklung und erstellen gemeinsam eine farbenfrohe Website.

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

So fügen Sie Bilder auf Bootstrap ein So fügen Sie Bilder auf Bootstrap ein Apr 07, 2025 pm 03:30 PM

Es gibt verschiedene Möglichkeiten, Bilder in Bootstrap einzufügen: Bilder direkt mit dem HTML -IMG -Tag einfügen. Mit der Bootstrap -Bildkomponente können Sie reaktionsschnelle Bilder und weitere Stile bereitstellen. Legen Sie die Bildgröße fest und verwenden Sie die IMG-Fluid-Klasse, um das Bild anpassungsfähig zu machen. Stellen Sie den Rand mit der img-beliebten Klasse ein. Stellen Sie die abgerundeten Ecken ein und verwenden Sie die IMG-Rund-Klasse. Setzen Sie den Schatten, verwenden Sie die Schattenklasse. Größen Sie die Größe und positionieren Sie das Bild im CSS -Stil. Verwenden Sie mit dem Hintergrundbild die CSS-Eigenschaft im Hintergrund.

So ändern Sie Bootstrap So ändern Sie Bootstrap Apr 07, 2025 pm 03:18 PM

Um die Größe der Elemente in Bootstrap anzupassen, können Sie die Dimensionsklasse verwenden, einschließlich: Einstellbreite:.

So richten Sie das Framework für Bootstrap ein So richten Sie das Framework für Bootstrap ein Apr 07, 2025 pm 03:27 PM

Um das Bootstrap -Framework einzurichten, müssen Sie die folgenden Schritte befolgen: 1. Verweisen Sie die Bootstrap -Datei über CDN; 2. Laden Sie die Datei auf Ihrem eigenen Server herunter und hosten Sie sie. 3.. Fügen Sie die Bootstrap -Datei in HTML hinzu; 4. Kompilieren Sie Sass/weniger bei Bedarf; 5. Importieren Sie eine benutzerdefinierte Datei (optional). Sobald die Einrichtung abgeschlossen ist, können Sie die Grid -Systeme, -Komponenten und -stile von Bootstrap verwenden, um reaktionsschnelle Websites und Anwendungen zu erstellen.

So verwenden Sie die Bootstrap -Taste So verwenden Sie die Bootstrap -Taste Apr 07, 2025 pm 03:09 PM

Wie benutze ich die Bootstrap -Taste? Führen Sie Bootstrap -CSS ein, um Schaltflächenelemente zu erstellen, und fügen Sie die Schaltfläche "Bootstrap" hinzu, um Schaltflächentext hinzuzufügen

So sehen Sie das Datum der Bootstrap So sehen Sie das Datum der Bootstrap Apr 07, 2025 pm 03:03 PM

ANTWORT: Sie können die Datumsauswahlkomponente von Bootstrap verwenden, um Daten auf der Seite anzuzeigen. Schritte: Stellen Sie das Bootstrap -Framework ein. Erstellen Sie ein Eingangsfeld für Datumsauswahl in HTML. Bootstrap fügt dem Selektor automatisch Stile hinzu. Verwenden Sie JavaScript, um das ausgewählte Datum zu erhalten.

See all articles