2016-07-14 11 views
1

Ich machte eine Webseite und ich musste eine div mit einer input, in der Mitte der Seite horizontal und vertikal ausrichten. Aber als ich den Code getestet habe, habe ich etwas gemacht, was ich nicht erwartet habe. enter image description hereTransformieren Versätze Eingangsrahmen in Chrome

body { 
 
    background: white; 
 
    margin: 0; 
 
    padding: 0; 
 
    font-family: Source Sans Pro; 
 
    line-height: 160%; 
 
} 
 

 
div { 
 
    position: absolute; 
 
    background: #E6E6E6; 
 
    padding: 15px; 
 
    left: 50%; 
 
    top: 50%; 
 
    transform: translate(-50%, -50%); 
 
    -webkit-transform: translate(-50%, -50%); 
 
}
<div><input /></div>

Getestet habe ich es in Chrome und Firefox, aber dieser Fehler passiert nur in Chrome. Gibt es einen Grund dafür, und wie repariere ich es?

Antwort

1

Das input Element wird standardmäßig gestylt mit einem inset Wert:

enter image description here

diesen Versuchen Sie stattdessen:

input { border: 1px solid gray; } 
 

 
body { 
 
    background: white; 
 
    margin: 0; 
 
    padding: 0; 
 
    font-family: Source Sans Pro; 
 
    line-height: 160%; 
 
} 
 

 
div { 
 
    position: absolute; 
 
    background: #E6E6E6; 
 
    padding: 15px; 
 
    left: 50%; 
 
    top: 50%; 
 
    -webkit-transform: translate(-50%, -50%); 
 
    transform: translate(-50%, -50%); 
 
}
<div><input /></div>

+0

Vielen Dank für Ihre Antwort! Es hat mein Problem behoben, aber die Grenze sieht so aus, als hätte sie 3 px Breite. Warum das? –

+0

Es ist eigentlich ein 1px Grenze. Wenn der 'border-style' jedoch" inset "ist, verschiebt er etwa 50% der" border-width "außerhalb des Bildschirms, so dass er dünner erscheint. –

+1

Ok, danke für deine Hilfe. –