2017-10-25 1 views
0

hinzufügen Ich frage mich, wie eine Grenze zu schaffen, die an der Außenseite eines div trägt nicht funktioniert aber es ist Art und Weise innerhalberstellen Border In CSS, das invertiert und tut nach außen

#MenuBox { 
    position: absolute; 
    top: 10%; 
    left: 2.5%; 
    width: 95%; 
    height: 80%; 
    background-color: #5a5b54; 
    z-index: 1; 
    margin: -10px; 
    border: 10px solid black; 

} 

versucht mit einer Marge obwohl es hat nicht funktioniert

+0

und würden Sie teilen egal, was mit Ihrem Skript falsch? oder sollen wir eine halbe Stunde damit verbringen, herauszufinden, was dein Problem ist? Stellen Sie sich vor, Sie betreiben einen Autoladen und jemand kommt, gibt Ihnen ein Foto von einem Drittel eines Autos und sagt: Wie kann ich dieses Auto wieder fahren lassen? – Piglet

+0

oh sorry, habe nicht einmal darüber nachgedacht – deathblade80

+0

Sie können entweder (1) 'box-sizing: border-box' verwenden; (2) Verwenden Sie einen Box-Shadow als Border Substitute und kombinieren Sie das mit Padding, so dass der Box-Shadow nicht mit Ihrem Inhalt überlappt – Terry

Antwort

0

per meinem Kommentar gibt es zwei Lösungen für Ihr Problem:

Lösung 1: Verwenden border-box

box-sizing: border-box wird die Breiten- und Höhenberechnung des Elements erzwingen, um Randbreiten zu berücksichtigen.

body { 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 
#MenuBox { 
 
    position: absolute; 
 
    top: 10%; 
 
    left: 2.5%; 
 
    width: 95%; 
 
    height: 80%; 
 
    background-color: #5a5b54; 
 
    z-index: 1; 
 
    
 
    border: solid 10px black; 
 
    
 
    /* Calculate border as part of width and height */ 
 
    box-sizing: border-box; 
 
}
<div id="MenuBox"> 
 
#MenuBox 
 
</div>

Lösung 2: Verwenden Sie box-shadow als Grenz Ersatz

einen Einsatz box-shadow mit einem Spread von 10px verwendet, wird der Effekt der mit einer Grenze imitieren, aber dieses Mal ist es innerhalb der Grenzen des Elements sein. Dieser Effekt ist nützlich if you want to have multiple borders, aber ansonsten bleiben Sie bei Lösung # 1.

body { 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 
#MenuBox { 
 
    position: absolute; 
 
    top: 10%; 
 
    left: 2.5%; 
 
    width: 95%; 
 
    height: 80%; 
 
    background-color: #5a5b54; 
 
    z-index: 1; 
 
    
 
    /* Use box-shadow */ 
 
    box-shadow: inset 0 0 0 10px black; 
 
    
 
    /* Use padding to offset content */ 
 
    padding: 10px; 
 
    box-sizing: border-box; 
 
}
<div id="MenuBox"> 
 
#MenuBox 
 
</div>

+0

Vielen Dank – deathblade80