Inhaltsverzeichnis
Float-Layout
display :inline-block-Layout
Heim Web-Frontend CSS-Tutorial div+css Bildlistenlayout (1)

div+css Bildlistenlayout (1)

Feb 18, 2017 pm 02:36 PM
css

Beim Zuschneiden von Bildern im Frontend stößt man häufig auf Bildlayouts, die für Anfänger möglicherweise ungewohnt sind. Als nächstes stelle ich zwei häufig verwendete Bildschneideschemata vor, die eine Bildliste mit 3 Zeilen und 3 Spalten verwenden:

div+css图片列表布局(一)

  • Float-Layout

  • display:inline-block-Layout

Lassen Sie uns zunächst über die Float-Layout-Methode sprechen

Float-Layout

ist sehr einfach. Im Allgemeinen verwende ich das ul-li-Layout

    <ul>
        <li><img src="./images/1.jpg"></li>
        <li><img src="./images/2.jpg"></li>
        <li><img src="./images/3.jpg"></li>
        <li><img src="./images/4.jpg"></li>
        <li><img src="./images/5.jpg"></li>
        <li><img src="./images/6.jpg"></li>
        <li><img src="./images/7.jpg"></li>
        <li><img src="./images/8.jpg"></li>
        <li><img src="./images/9.jpg"></li>
    </ul>
Nach dem Login kopieren

und lege dann eine Breite für jedes li-Element fest und schiebe es nach links. Hier muss jede Zeile 3 Bilder anzeigen, sodass die Breite jedes Bildes anhand eines Prozentsatzes berechnet werden kann: 100/3=33,3 %.

li {
    list-style: none;
    float: left;
    width: 33.3%;/*三列图片排列*/
}
Nach dem Login kopieren

Die Breite jedes IMG-Tags ist auf 100 % eingestellt und nimmt die gesamte Breite des Li ein. Um zu verhindern, dass sich das Bild verformt, ist die Höhe adaptiv

li {
    list-style: none;
    float: left;
    width: 33.3%;/*三列图片排列*/
}

li img {
    width: 100%;
}
Nach dem Login kopieren

Okay, schauen wir uns den Effekt an.

div+css图片列表布局(一)

Warum ist es anders als wir dachten? An dieser Stelle ist die Liste verwirrend. Keine Sorge, die Bilder sind in verschiedenen Größen erhältlich. Wenn die Größe der Bilder im Projekt zu unterschiedlich ist, wird empfohlen, eine feste Höhe für das übergeordnete Element festzulegen und diese nicht mehr auszublenden. Wenn die Bildgrößen jedoch nicht sehr unterschiedlich sind, wird empfohlen, height: auto; einzustellen, um hochadaptive Zwecke zu erreichen.

li {
    list-style: none;
    float: left;
    width: 33.3%;/*三列图片排列*/
    height: 100px;/*当图片尺寸不一的时候,设置一个高度*/
    overflow: hidden;/*超出隐藏*/
}
Nach dem Login kopieren

Hmm~ Es ist fast so gut wie unsere Bedürfnisse

div+css图片列表布局(一)

Zu diesem Zeitpunkt erfordert das Produkt möglicherweise, dass Sie das Bild nach oben und unten zentrieren

li img {
    position: relative;
    width: 100%;
    top: 50%;/*li高度的一半*/
    transform: translateY(-50%); /*再向上移动自身的50%*/
}
Nach dem Login kopieren

Einige Schüler denken möglicherweise darüber nach, „margin-top“ anstelle von „top“ zu verwenden. Hierbei ist zu beachten, dass die Prozentsätze von Rand oben und Rand unten im Allgemeinen auf der Grundlage der Breite des Containerelements und nicht auf der Grundlage der Höhe berechnet werden. Das Gleiche gilt für die Polsterung

div+css图片列表布局(一)

Hier ist im Grunde ein grundlegendes Bildlayout mit drei Zeilen und drei Spalten fertiggestellt.

Aber seien Sie vorsichtig, es gibt ein verstecktes Problem, das Anfänger möglicherweise übersehen: Der übergeordnete Container wird zusammengebrochen, nachdem das untergeordnete Element schwebend ist. Manchmal beeinträchtigt diese Funktion unser Layout erheblich. Testen wir es. Fügen Sie ein p-Element

.red{
    width: 100%;
    height: 30px;
    border: 1px solid red;
}
.blue{
    width: 100%;
    height: 30px;
    border: 1px solid blue;
}    
    
<p class="red"></p>
<ul>...</ul>
<p class="blue"></p>
Nach dem Login kopieren

vor und nach dem ul-Element hinzu. Sie können sehen, dass sich das .blue-Element neben dem .red-Element befindet und sich das ul-Element so verhält, als ob es nicht existierte

div+css图片列表布局(一)

Dies liegt daran, dass das Element nach dem Floaten vom Dokumentfluss getrennt wird. Weitere Informationen zum Prinzip des Floatings finden Sie im CSS-Float und dem CSS-Floating-Attribut Float von w3school , was hier nicht wiederholt wird. Es gibt viele Möglichkeiten, Floats zu löschen. Hier empfehlen wir das Hinzufügen von: Nach dem Pseudoelement zum Entfernen von Floats

.clearfix:after{
    position: relative;
    content: '';
    display: block;
    width: 0;
    height: 0;
    visibility: hidden;
    clear: both;
}

<p class="red"></p>
<ul class="clearfix">...</ul>
<p class="blue"></p>
Nach dem Login kopieren

Sehen wir uns den Effekt noch einmal an, die Leistung wird normal sein

div+css图片列表布局(一)

display :inline-block-Layout

ähnelt dem Float-Layout, außer dass wir float: left; durch display: inline-block;

li {
    list-style: none;
    display: inline-block;
    width: 33.3%;
    /*三列图片排列*/
    height: 100px;
    /*当图片尺寸不一的时候,需要设置一个最大高度*/
    text-align: center;
    /*内容居中*/
    overflow: hidden;
    /*超出隐藏*/
}
Nach dem Login kopieren

div+css图片列表布局(一)

Schauen wir uns den Effekt an. Es gibt eine Lücke und sie wird in zwei Zeilen gequetscht. Was ist los? ~

Beachten Sie, dass es Lücken zwischen Inline-Block-Elementen geben wird. Weitere Informationen finden Sie im Blog von Zhang Xinxu. Hier verwenden wir die Methode „font-size: 0;“, um die Lücken zwischen Elementen zu schließen

ul {
    width: 100%;
    margin: 0 auto;
    font-size: 0;
}
Nach dem Login kopieren

div+css图片列表布局(一)

Auf diese Weise wird der gewünschte Effekt vervollständigt. Ist das nicht ganz einfach?

Mehr div+css-Bildlistenlayout (1) Für verwandte Artikel achten Sie bitte auf die chinesische PHP-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 Artikel -Tags

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)

Was bedeutet Platzhalter in Vue? Was bedeutet Platzhalter in Vue? May 07, 2024 am 09:57 AM

Was bedeutet Platzhalter in Vue?

So schreiben Sie Leerzeichen in Vue So schreiben Sie Leerzeichen in Vue Apr 30, 2024 am 05:42 AM

So schreiben Sie Leerzeichen in Vue

Wie man Dom in Vue bekommt Wie man Dom in Vue bekommt Apr 30, 2024 am 05:36 AM

Wie man Dom in Vue bekommt

Was bedeutet span in js Was bedeutet span in js May 06, 2024 am 11:42 AM

Was bedeutet span in js

Was bedeutet rem in js Was bedeutet rem in js May 06, 2024 am 11:30 AM

Was bedeutet rem in js

So führen Sie Bilder in Vue ein So führen Sie Bilder in Vue ein May 02, 2024 pm 10:48 PM

So führen Sie Bilder in Vue ein

Welche Funktion hat das Span-Tag? Welche Funktion hat das Span-Tag? Apr 30, 2024 pm 01:54 PM

Welche Funktion hat das Span-Tag?

In welcher Sprache ist das Browser-Plugin geschrieben? In welcher Sprache ist das Browser-Plugin geschrieben? May 08, 2024 pm 09:36 PM

In welcher Sprache ist das Browser-Plugin geschrieben?

See all articles