2016-01-06 1 views
9

これが可能かどうかはわかりませんが、テキストラップされたスパンの周りのフレックスアイテムを縮小できるかどうかを判断しようとしています。テキストラップスパンの周りのフレックスアイテムを縮小するにはどうすればよいですか?

これは私が今のところです.2行目を見ると、テキストの右側の空白を取り除こうとしています。

body { 
 
    height: 75%; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
body > div { 
 
    min-height: 55px; 
 
    display: -webkit-box; 
 
    display: -webkit-flex; 
 
    display: -ms-flexbox; 
 
    display: flex; 
 
    -webkit-box-orient: horizontal; 
 
    -webkit-box-direction: normal; 
 
    -webkit-flex-direction: row; 
 
     -ms-flex-direction: row; 
 
      flex-direction: row; 
 
    border-bottom: 1px solid black; 
 
    width: 225px; 
 
} 
 
body > div > div { 
 
    -webkit-box-flex: 1; 
 
    -webkit-flex: 1 1 auto; 
 
     -ms-flex: 1 1 auto; 
 
      flex: 1 1 auto; 
 
    border-right: 1px solid black; 
 
} 
 
body > div > div span { 
 
    font-size: 21px; 
 
} 
 
body > div > div:nth-child(1) { 
 
    -webkit-box-flex: 0; 
 
    -webkit-flex: 0 1 auto; 
 
     -ms-flex: 0 1 auto; 
 
      flex: 0 1 auto; 
 
}
<div> 
 
    <div><span>Some text regular</span></div> 
 
    <div></div> 
 
</div> 
 
<div> 
 
    <div><span>howdoishrinkthis flexitemtotext</span></div> 
 
    <div></div> 
 
</div> 
 
<div> 
 
    <div><span>Some text regular</span></div> 
 
    <div></div> 
 
</div>

+0

を:それはすることによってこれを実現しますあなたはフォントサイズを縮小したいですか?私はあなたがしたいことを理解しているか分からない –

+0

純粋なCSSで可能かどうかはわかりません。これはあなたを助けるかもしれません:http://stackoverflow.com/q/25808069/3597276 –

+0

"howdoishrinkthis flexitemtotext"内のスパンを調べる場合、それはフレックスアイテムよりも小さい幅を持っています。本質的に、私は、左のテキストと同じになるようにします。 – Blenderer

答えて

1

ゼロにflex-basisを設定することにより、あなたがその最小サイズに柔軟なアイテムを縮小します。 だから、テキストにフィットしますが、それはまたラップするテキストを強制します:

body > div { 
 
    min-height: 55px; 
 
    display: -webkit-box; 
 
    display: -webkit-flex; 
 
    display: -ms-flexbox; 
 
    display: flex; 
 
    -webkit-box-orient: horizontal; 
 
    -webkit-box-direction: normal; 
 
    -webkit-flex-direction: row; 
 
     -ms-flex-direction: row; 
 
      flex-direction: row; 
 
    border-bottom: 1px solid black; 
 
    width: 225px; 
 
} 
 
body > div > div { 
 
    -webkit-box-flex: 1; 
 
    -webkit-flex: 1 1 auto; 
 
     -ms-flex: 1 1 auto; 
 
      flex: 1 1 auto; 
 
    border-right: 1px solid black; 
 
} 
 
body > div > div span { 
 
    font-size: 21px; 
 
} 
 
body > div > div:nth-child(1) { 
 
    -webkit-box-flex: 0; 
 
    -webkit-flex: 0 1 0; 
 
     -ms-flex: 0 1 0; 
 
      flex: 0 1 0; 
 
}
<div> 
 
    <div><span>Some text regular</span></div> 
 
    <div></div> 
 
</div> 
 
<div> 
 
    <div><span>howdoishrinkthis flexitemtotext</span></div> 
 
    <div></div> 
 
</div>

+0

このソリューションは、新しいバージョンのChromeでのみ動作するようです。 – Blenderer

0

以下のソリューションは完璧ではないですが、それはまでフレックスアイテムを引っ張るん長い単語の場合でもテキスト。ドゥ長い単語を破る(およびハイフネーションをサポートするブラウザでそれらをハイフネーション)テキストコンテナ(span

  • フローティング

    body { 
     
        height: 75%; 
     
        margin: 0; 
     
        padding: 0; 
     
    } 
     
    body > div { 
     
        min-height: 55px; 
     
        display: -webkit-box; 
     
        display: -webkit-flex; 
     
        display: -ms-flexbox; 
     
        display: flex; 
     
        -webkit-box-orient: horizontal; 
     
        -webkit-box-direction: normal; 
     
        -webkit-flex-direction: row; 
     
         -ms-flex-direction: row; 
     
          flex-direction: row; 
     
        border-bottom: 1px solid black; 
     
        width: 225px; 
     
    } 
     
    body > div > div { 
     
        -webkit-box-flex: 1; 
     
        -webkit-flex: 1 1 auto; 
     
         -ms-flex: 1 1 auto; 
     
          flex: 1 1 auto; 
     
        border-right: 1px solid black; 
     
    } 
     
    body > div > div span { 
     
        float: left; 
     
        font-size: 21px; 
     
        overflow-wrap: break-word; 
     
        word-wrap: break-word; 
     
    
     
        -ms-word-break: break-all; 
     
        word-break: break-word; 
     
    
     
        -ms-hyphens: auto; 
     
        -moz-hyphens: auto; 
     
        -webkit-hyphens: auto; 
     
        hyphens: auto; 
     
    } 
     
    body > div > div:nth-child(1) { 
     
        -webkit-box-flex: 0; 
     
        -webkit-flex: 0 1 auto; 
     
         -ms-flex: 0 1 auto; 
     
          flex: 0 1 auto; 
     
    }
    <div> 
     
        <div><span>Some text regular</span></div> 
     
        <div></div> 
     
    </div> 
     
    <div> 
     
        <div><span>howdoishrinkthis flexitemtotextevenlonger and more and more and mroe text</span></div> 
     
        <div></div> 
     
    </div> 
     
    <div> 
     
        <div><span>Some text regular asdf asdf</span></div> 
     
        <div></div> 
     
    </div>

  • 関連する問題