簡體   English   中英

水平對齊div內的拉伸圖像?

[英]Horizontally align a stretched image inside a div?

如何以任意百分比水平對齊 div 內的拉伸/縮放圖像?

請參閱下面的 html。 圖像需要在 div 內以任意百分比水平對齊。
所以, 0% = 左, 50% = 居中, 53% =幾乎居中, 100% = 右

 // just a toggle script, not relevant to the question const toggle = function() { const viewportElement = document.querySelector('.viewport'); if (viewportElement.classList.contains('viewport--portrait')) { viewportElement.classList.remove('viewport--portrait') } else { viewportElement.classList.add('viewport--portrait') } };
 .viewport { position: relative; margin: 60px auto; overflow: hidden; width: 667px; height: 375px; }.viewport--portrait { width: 375px; height: 667px; }.btn_toggle { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 1; padding: 10px 20px; } /* *** relevant styles below *** */.container { position: relative; height: 100%; width: 100%; border: 1px solid blue; }.image-wrapper { position: absolute; left: 0; right: 0; width: 100%; height: 100%; /*???? */ }.image-wrapper img { height: 100%; width: auto; object-fit: cover; }
 <div class="viewport viewport--portrait"> <div class="container"> <div class="image-wrapper"> <img src="https://i.imgur.com/nigSBoN.jpeg" width="1952" height="765" alt="Chocolate;"> </div> <button class="btn_toggle" onclick="toggle();">Toggle</button> </div> </div>

<div class="viewport">
    <div class="container">
        <div class="image-wrapper">
            <img src="chocolate.jpg" width="1952" height="765" alt="Chocolate!">
        </div>
    </div>
</div>

有沒有一種方法可以一致地水平對齊拉伸的圖像?

利用

  position: relative;
  left: var(--p);
  transform: translate(calc(-1*var( --p)));

在圖像元素上然后簡單地調整變量來定義百分比:

 // just a toggle script, not relevant to the question const toggle = function() { const viewportElement = document.querySelector('.viewport'); if (viewportElement.classList.contains('viewport--portrait')) { viewportElement.classList.remove('viewport--portrait') } else { viewportElement.classList.add('viewport--portrait') } };
 .viewport { position: relative; margin: 60px auto; overflow: hidden; width: 667px; height: 375px; }.viewport--portrait { width: 375px; height: 667px; }.btn_toggle { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 1; padding: 10px 20px; } /* *** relevant styles below *** */.container { position: relative; height: 100%; width: 100%; border: 1px solid blue; box-sizing: border-box; }.image-wrapper { --p: 20%; position: absolute; left: 0; right: 0; width: 100%; height: 100%; }.image-wrapper img { height: 100%; width: auto; object-fit: cover; position: relative; left: var(--p); transform: translate(calc(-1*var( --p))); }
 <div class="viewport viewport--portrait"> <div class="container"> <div class="image-wrapper"> <img src="https://i.imgur.com/nigSBoN.jpeg" width="1952" height="765" alt="Chocolate;"> </div> <button class="btn_toggle" onclick="toggle();">Toggle</button> </div> </div>

對齊內部的圖像和文本<div>水平和垂直</div><div id="text_translate"><p>我想水平和垂直對齊 div 內的圖像和文本。 我的代碼:</p><pre> &lt;div style="white-space:nowrap" (click)="sidenav.toggle()"&gt; &lt;img alt='image' style="margin-top: 1vw;display: inline;" width="25" height="35" src="../assets/menu-white-18dp.svg"&gt; &lt;span style="display:inline; white-space:nowrap;" &gt; KRON&lt;/span&gt; &lt;/div&gt;</pre><p> 目前它看起來像這樣: <a href="https://i.stack.imgur.com/VP0Ld.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/VP0Ld.png" alt="在此處輸入圖像描述"></a></p><p> 我希望“KRON”與圖像對齊。 我做錯了什么?</p></div>

[英]Align image and text inside <div> horizontally and vertically

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM