HTML CSS überlappen verhindern?

5 Antworten

Mach

position: relative;

dann können sie sich nicht überlappen.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

Juboy6000 
Fragesteller
 20.07.2021, 23:57

Hi, das Problem dabei ist wieder ich habe eine "haupt ebene", praktisch eine div im Hintergrund die alles ausfüllt, jetzt soll aber das Element auf der Hintergrund Div sein aber gleichzeitig nicht mit der anderen oberen Div nicht überlappen

0
MrAmazing2  21.07.2021, 00:13
@Juboy6000

Ist die "andere obere Div" ebenfalls auf dem Hintergrund positioniert? Oder eine Ebene höher?

<div (die obere div)></div>
<div (hauptebene. position: absolute)>
  <div (das div. position: absolute)></div>
</div>

oder

<div (hauptebene)>
  <div (die obere div. position: absolute)></div>
  <div (das div. position: absolute)></div>
</div>
0
Juboy6000 
Fragesteller
 21.07.2021, 00:22
@MrAmazing2

Die untere Variante.

Beispiel:

    <div class="mainbox">
        <div class="toptitle DIE DIV"> 
            <div class="toptitle_text">Test</div>
        </div>
        <div class="sidemenuANDERE OBERE DIV">


        </div>
    </div>
0
MrAmazing2  21.07.2021, 00:34
@Juboy6000

Dann pack beide in einen Container (der absolut positioniert ist, dadurch kannst du bestimmen wo auf dem Hintergrund es sein soll) und gib ihnen position: relative (dadurch sagst du, dass sie sich nicht überlappen dürfen)

    <div class="mainbox">
      <div class="container"> <-- Position: Absolute
        <div class="toptitle DIE DIV">...</div> <-- Position: Relative
        <div class="sidemenuANDERE OBERE DIV"></div> <-- Position: Relative
     </div>
    </div>

Andere möglichkeit wäre, deinem Div einfach

top: ...px;

oder

left: ...px;

zu geben, damit es den benötigten Abstand zum anderen Div hat. Aber wären dann halt fixe Werte. Oder du benutzt Prozente. Von 0 bis 50% Breite das eine Div, von 50% bis 100% Breite das andere. Ginge auch. Jenachdem, was du willst.

0
MrAmazing2  21.07.2021, 00:38
@MrAmazing2

Also wenn ich mir die Frage so durchlese hört sich das eher nach der ersten Lösung an, das mit dem Container.

Vielleicht ginge es auch ohne Container, jenachdem wie du's brauchst. Sollen die zwei Divs erst ab einer bestimmten Stelle beim Hintergrund sein, vlt. in einem Bereich den du mit left: und top: angibst? -> Container. Sollen sie einfach nur auf dem Hintergrund sein, ohne jeglich Einrückung -> Ohne Container. z.B. einfach so:

    <div class="mainbox">
        <div class="toptitle DIE DIV">...</div> <-- Position: Relative
        <div class="sidemenuANDERE OBERE DIV"></div> <-- Position: Relative
    </div>
1
Juboy6000 
Fragesteller
 21.07.2021, 00:45
@MrAmazing2

Danke, ja also ich denke es währe am besten es mit dem Container zu machen oder mit Grid, ich bin noch am überlegen

1

margin-top sollte funktionieren. Musst dann nur den Abstand von oben in Pixeln (oder so) angeben.

Woher ich das weiß:Hobby – Beschäftige mich oft mit Computern

Juboy6000 
Fragesteller
 20.07.2021, 21:15

Hi, also sage ich beim unteren Element margin-top:0?
Weil ich keine Maße angeben möchte

0
VinceJosh  20.07.2021, 21:16
@Juboy6000

Geht meines Wissens nach nur mit Maße. Kannst du aber mal testen.

0
Juboy6000 
Fragesteller
 20.07.2021, 21:17
@VinceJosh

Also kann ich nicht sagen das es zwei Elemente sind die sich nicht überlappen dürfen?

0

Kann es sein, das du deine Elemente mit

position: absolut ;

positionierst ?


Juboy6000 
Fragesteller
 20.07.2021, 21:18

Genau, das ist richtig.

0
HoiZusammen  20.07.2021, 21:18
@Juboy6000

Vermutlich ist genau das gerade dein Problem ;)

Was willst du überhaupt bauen ?

0
Juboy6000 
Fragesteller
 20.07.2021, 21:20
@HoiZusammen

Mit dem position weiß ich auch nicht genau wie das funktioniert in Verbindung mit anderen Elementen

0
VinceJosh  20.07.2021, 21:23
@Juboy6000

Werden Elemente nicht automatisch untereinander Positioniert?

1

Das passiert doch in der Regel von selbst. Blockelemente wie div sind immer untereinander, wenn sie nicht mittels Techniken wie float, flex-box oder css-grids in eine Zeile gezogen werden.

Wenn dort noch Abstände sind, die du nicht haben willst, dann entfernst du die eben, dafür brauchst du aber keine statischen Werte für top oder ähnliches. Sowas nutzt man i.d.R. wenn für z.B. eine Navigation die im Bild bleibt. Will man ein Element dann scrollbar da unter haben nutzt man eben margin oder padding.

Generell wird aber mit deiner Erklärung kaum einer wissen wie dein Code aussieht und was du genau haben möchtest. Vermutlich nutzt du position absolute, obwohl du es nicht brauchst und machst dir damit selbst Probleme.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012

Versuchs doch mal mit CSS-Grid da kannst du den ganzen Bildschirm in mehrere Teile unterteilen. Da gibt’s einige gute Tutorials dazu auf YT.


Juboy6000 
Fragesteller
 20.07.2021, 21:18

Hi, das habe ich auch schon gehört. Probiere ich mal aus!

0