2016-09-30 15 views
0

Ich habe eine relativ Position Wrapper um drei absolut positionierte Bilder. Wie kann ich diese Bilder innerhalb des Wrappers zentrieren, ohne den "linken" Wert zu ändern, damit ich dieses Modul flüssig reagieren lassen kann?Horizontal absolute Bilder zentrieren

Mein html:

<div class="illustrations"> 
     <img src="http://fillmurray.com/175/112" alt="" class="platform desktop"> 
     <img src="http://fillmurray.com/143/110" alt="" class="platform tablet" style="left: 110px;"> 
     <img src="http://fillmurray.com/40/87" alt="" class="platform mobile" style="left: 230px;"> 
    </div> 

Siehe meine Geige hier https://jsfiddle.net/gjexgw86/

will einfach immer die zentrierte Bilder müssen, ohne die absoluten 'links' Werte zu ändern.


+1

Warum verwenden Sie 'position: absolute;' und 'left', wenn Sie sie komplett ignorieren wollen? Ich frage mich, auf welche Art und Weise die Positionierung mit Hilfe von Hard-Coding etwas "flüssiger" anspricht. Ich denke, wir müssen vielleicht einen Schritt zurückgehen und dem Thema auf den Grund gehen, bevor wir uns damit befassen. Wenn Sie die absolute Positionierung basierend auf der Bildschirmgröße anwenden möchten, verwenden Sie einfach "@ media" in Ihrem CSS. – Santi

Antwort

0

Sind Sie für ansprechende Art und Weise suchen, um die Bilder anzuordnen, hier ich mit Bootstrap tat.

prüfen: https://jsfiddle.net/my23wuxz/

<div class="container-fluid"> 
    <div class="row"> 
    <div class="col-sm-4" style="text-align:center;"><img src="http://fillmurray.com/175/112" alt=""> </div> 
    <div class="col-sm-4" style="text-align:center;"><img src="http://fillmurray.com/143/110" alt="" > </div> 
    <div class="col-sm-4" style="text-align:center;"><img src="http://fillmurray.com/40/87" alt="" ></div> 
    </div> 
</div> 
0

Für ein ansprechendes Ergebnis müssen Sie die relativen Positionen zwischen den Bildern statt Absolutwerte (absolute linke Position) einzustellen:

Siehe in https://jsfiddle.net/gjexgw86/2/ mit negativem margin-left zwischen Bilder und lassen Sie den äußeren Container den Inhalt zentrieren.

.illustrations { 
    width:100%; 
    text-align:center; 
    height:140px; 
} 

.platform { 
    transition: all .7s ease-in-out; 
} 


<div class="illustrations"> 
         <img src="http://fillmurray.com/175/112" alt="" class="platform desktop"> 
         <img src="http://fillmurray.com/143/110" alt="" class="platform tablet" style="margin-left: -65px;"> 
         <img src="http://fillmurray.com/40/87" alt="" class="platform mobile" style="margin-left: -30px;"> 
        </div> 
0

Sie können einen Versuch zu beiden right und lef t coordonates geben und verwenden margin:auto;

.illustrations { 
 
    position: relative; 
 
    text-align: left; 
 
    text-align: center; 
 
    height:140px; 
 
    /* see me and my center */ 
 
    border: solid; 
 
    background:linear-gradient(to left, transparent 50%, rgba(0,0,0,0.2) 50%),linear-gradient(to top, transparent 50%, rgba(0,0,0,0.2) 50%) 
 
} 
 

 
.platform { 
 
    transform: translatey(-50%);/*transform would be for vertical centering , optionnal */ 
 
    vertical-align: middle; 
 
    position: absolute; 
 
    left: 0; 
 
    right:0;/* add this to center */ 
 
    margin:70px auto;/* 70px from + transform would be for vertical centering , optionnal */ 
 
    transition: all .7s ease-in-out; 
 
    } 
 
.illustrations:hover .platform { 
 
    /* see behind */ 
 
    opacity:0.5 
 
}
<div class="illustrations"> 
 
    <img src="http://fillmurray.com/175/112" alt="" class="platform desktop"> 
 
    <img src="http://fillmurray.com/143/110" alt="" class="platform tablet" style="left: 110px;"> 
 
    <img src="http://fillmurray.com/40/87" alt="" class="platform mobile" style="left: 230px;"> 
 
</div>

Beachten Sie, dass:

  • left:0; + right:0; = im midddle
  • left:110px; + right:0; = 110px weg von Mitte
  • left:230px; + right:0; = 230px weg von Mitte

https://jsfiddle.net/gjexgw86/4/

1

Wenn Sie den left Wert nicht ändern , müssen Sie ihren Wert translate ändern.

nicht sicher, wie man das Ganze ist scripting, aber Sie würden

transform:translateX(-125px); 

verwenden oder aber viel Sie brauchen, um sie zu bewegen.

Verwandte Themen