2017-08-16 25 views
0

我有一個帶有4列的flexbox,第一個有一個圖像。Flexbox具有最大寬度和最大高度的內容,並且仍然是響應式的

JSFiddle

我想它使圖像響應(工作),但我想這一次的屏幕越來越大,它不再收縮/擴張,有一個最大寬度以像素爲單位,而不是百分比。

我以前max-width: 100%;使其反應迅速,但一旦屏幕獲得的足夠大的地方它不收縮或擴張,我想它有一個max-width: 250px;,所以它不會繼續增長。

如果我擺脫了100%並將其更改爲250px,它在屏幕變小時不再響應。

我不想做媒體查詢,因爲我希望它爲圖像工作。

有沒有辦法做到這一點?

HTML

<div class="container"> 
    <div class="row"> 
    <div class="col"> 
     <img src="https://s-media-cache-ak0.pinimg.com/236x/9d/db/c7/9ddbc7c118bcd047a06b44bae34bb413--exotic-flowers-tropical-flowers.jpg" /> 
    </div> 
    <div class="col"> 
     This is a group of flex columns 
    </div> 
    <div class="col"> 
     Isn't that interesting? 
    </div> 
    </div> 
</div> 

CSS

.container { 
    display: block; 
    background-color: #fff; 
    padding-left: 30px; 
    padding-right: 30px; 
} 

.row { 
    display: -webkit-box; 
    display: -ms-flexbox; 
    display: flex; 
    -webkit-box-pack: center; 
     -ms-flex-pack: center; 
      justify-content: center; 
    -webkit-box-orient: horizontal; 
    -webkit-box-direction: normal; 
     -ms-flex-flow: row nowrap; 
      flex-flow: row nowrap; 
    margin-left: -30px; 
    margin-right: -30px; 
    padding: 15px 0 60px; 
} 

.col { 
    border: 1px solid black; 
    padding-left:30px; 
    padding-right:30px; 
    min-width: 0; 
} 

.col img { 
    width: auto; 
    max-width:100%; 
    // max-width: 250px; // This breaks it, but is what I need 
    max-height: 250px; 
} 

回答

2

一種解決方案是將max-width: 250px設置你的第一個.col

Fiddle demo

棧片斷

.container { 
 
    display: block; 
 
    background-color: #fff; 
 
    padding-left: 30px; 
 
    padding-right: 30px; 
 
} 
 

 
.row { 
 
    display: -webkit-box; 
 
    display: -ms-flexbox; 
 
    display: flex; 
 
    -webkit-box-pack: center; 
 
     -ms-flex-pack: center; 
 
      justify-content: center; 
 
    -webkit-box-orient: horizontal; 
 
    -webkit-box-direction: normal; 
 
     -ms-flex-flow: row nowrap; 
 
      flex-flow: row nowrap; 
 
    margin-left: -30px; 
 
    margin-right: -30px; 
 
    padding: 15px 0 60px; 
 
} 
 

 
.col { 
 
    border: 1px solid black; 
 
    padding-left:30px; 
 
    padding-right:30px; 
 
    min-width: 0; 
 
} 
 

 
.col img { 
 
    max-width: 100%; 
 
    max-height: 250px; 
 
} 
 

 
.col:first-child { 
 
    max-width: 250px; 
 
}
<div class="container"> 
 
    <div class="row"> 
 
    <div class="col"> 
 
     <img src="https://s-media-cache-ak0.pinimg.com/236x/9d/db/c7/9ddbc7c118bcd047a06b44bae34bb413--exotic-flowers-tropical-flowers.jpg" /> 
 
    </div> 
 
    <div class="col"> 
 
     This is a group of flex columns 
 
    </div> 
 
    <div class="col"> 
 
     Isn't that interesting? 
 
    </div> 
 
    </div> 
 
</div>


另一種選擇是包裹在spanimg並給予spanmax-width: 250px

Fiddle demo

堆棧片斷

.container { 
 
    display: block; 
 
    background-color: #fff; 
 
    padding-left: 30px; 
 
    padding-right: 30px; 
 
} 
 
.row { 
 
    display: -webkit-box; 
 
    display: -ms-flexbox; 
 
    display: flex; 
 
    -webkit-box-pack: center; 
 
     -ms-flex-pack: center; 
 
      justify-content: center; 
 
    -webkit-box-orient: horizontal; 
 
    -webkit-box-direction: normal; 
 
     -ms-flex-flow: row nowrap; 
 
      flex-flow: row nowrap; 
 
    margin-left: -30px; 
 
    margin-right: -30px; 
 
    padding: 15px 0 60px; 
 
} 
 
.col { 
 
    border: 1px solid black; 
 
    padding-left:30px; 
 
    padding-right:30px; 
 
    min-width: 0; 
 
} 
 
.col img { 
 
    max-width: 100%; 
 
    max-height: 250px; 
 
} 
 
.col span { 
 
    max-width: 250px; 
 
}
<div class="container"> 
 
    <div class="row"> 
 
    <div class="col"> 
 
     <span> 
 
     <img src="https://s-media-cache-ak0.pinimg.com/236x/9d/db/c7/9ddbc7c118bcd047a06b44bae34bb413--exotic-flowers-tropical-flowers.jpg" /> 
 
     </span> 
 
    </div> 
 
    <div class="col"> 
 
     This is a group of flex columns 
 
    </div> 
 
    <div class="col"> 
 
     Isn't that interesting? 
 
    </div> 
 
    </div> 
 
</div>

相關問題