Ich versuche ein Pseudo-Element als Hintergrundbild zu verwenden, das einfach mit der Breite des Dokuments schneidet. Wenn ich jedoch ein Hintergrundbild einfüge, wird die Breite des Dokuments erweitert, wodurch einige andere divs sehr breit werden.Wie kann man verhindern, dass ein Pseudo-Element die Breite anderer Elemente ändert?
Insbesondere können Sie aus dem Screenshot sehen, dass das Nav seine Breite erweitert, um das Hintergrundbild des Pseudoelements aufzunehmen.
Ich habe gesehen, es getan, aber ich bin nicht, was der Unterschied ist, wie der Code im eigentlichen Pseudoelement gleich ist. Ein Beispiel:
HTML:
<nav class="navbar navbar-default navbar-fixed-top navbar-custom">
<div class="container nav-down">
<div class="navbar-header page-scroll">
<a class="navbar-brand" href="/"><img src="/static/ScoopsLogo.png" alt="${out.global.siteName} Logo"></a>
<p class="navbar-blog"><a href="https://blog.scoops.io/">Blog</a></p>
</div>
</div>
<div id="scroll-progress">
<div id="scroll-progress-bar"></div>
</div>
</nav>
<section id="home">
<div class="home-1">
<div class="home1-1">
<h1>Sound smart at the dinner table</h1>
<h5>Learning made easy & fun</h5>
</div>
</div>
<div class="home-lessons fade-in-up-static delay-2">
<!-- List of Lessons -->
<h5 class="text-center">NEW SCOOPS</h5>
<div class="lessons-list">
</div>
</div>
</section>
CSS:
.navbar {
min-height: 50px;
margin-bottom: 20px;
}
.navbar-default {
background-color: #f8f8f8;
border-color: #e7e7e7;
}
.navbar-fixed-top {
top: 0;
border-width: 0 0 1px;
}
.container {
max-width: 600px;
}
.navbar-custom {
.navbar-header {
width: inherit;
max-width: inherit;
}
.navbar-brand {
img {
width: auto;
height: 100%;
}
}
.navbar-blog {
float: right;
padding: 10px;
margin: 3px 10px 0 0;
}
}
.home-lessons {
width: 100%;
padding: 3%;
@media (min-width: $screen-md-min) {
margin-bottom: 20px;
padding: 20px 40px;
}
h5 {
margin-top: -100px;
}
&::before {
content: '';
background-image: url(/static/Scoops-Icons.png);
background-size: cover;
width: 500px;
height: 500px;
display: block;
position: absolute;
margin-left: 200px;
margin-top: -200px;
}
}
Danke Fritten. Um für mich selbst und andere Leute zu klären, warum ist es eine schnelle Lösung, um html/body als CSS-Selektor für overflow-x: hidden; zu verwenden, und warum sollten diese Selektoren und nicht einfach die Eltern des Pseudo-Elements sein? – Chris
Hallo @ Chris. Es ist Overkill, denn wenn dein Körper "overflow-x: hidden" hat, sollte es niemals über 'html' hinausgehen, außer du hast eine horizontal ausgerichtete Website - hilft das? Was Ihre zweite Frage betrifft, wäre es besser, das 'overflow-x: hidden' auf dem Eltern-Element zu haben, aber nur dann, wenn Ihr Eltern-Element nicht kleiner ist als der Bereich, den Sie mit Ihrem Pseudo-Element erreichen wollen. Oftmals wird das Pseudo-Element so gestylt, dass es absichtlich über das Elternelement hinausragt, muss aber dennoch die Dokumentgröße bestätigen. Hilft das? :) – Frits
@Chris - vergessen Sie nicht, sich [Ihre Bounty Frage] (https://Stackoverflow.com/a/44457687/6049581) zu sehen - die Frage scheint die gleiche, aber fühlen Sie sich frei, mich wissen zu lassen, wenn Ich habe da nichts ausgelassen :) – Frits