flex item overflows container due to long word even after using word-wrap

后端 未结 4 2163
天命终不由人
天命终不由人 2020-12-28 12:00



        
相关标签:
4条回答
  • 2020-12-28 12:07

    I am using a combination like this and it works for me on Chrome, Safari, and Firefox.

    .myOverflowableText {
      word-break: break-word; /* Chrome, Safari */
      overflow-wrap: anywhere; /* Firefox */
    }
    

    This site says word-break is supported on Chrome & Safari https://caniuse.com/#feat=word-break.

    But I found that Firefox's solution should be overflow-wrap: anywhere on this site: https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap

    I'm not sure about IE yet... Maybe word-wrap: break-word; works on IE?

    My goal is this:

    Hello this is some |
    text. I am writing |
    some text.         |
    Especially long    |
    words go to the    |
    next line like     |
    this. This is a    |
    veryveryveryveryve |
    ryveryverylongword |
    .                  |
    
    0 讨论(0)
  • 2020-12-28 12:08

    Thanks to the Gaurav Aggarwal's answer, I've been able to solve the same kind of issue by using the CSS property:

    word-break: break-word
    
    0 讨论(0)
  • 2020-12-28 12:14

    Instead of word-wrap:break-word use word-break:break-all

    CSS

    .child1{
      background-color:mistyrose;
      padding:1em;
      word-break:break-all;
    }
    .child2{
      background-color:powderblue;
      padding:.5em;
      max-width:500px;
      word-break:break-all;
    }
    .child3{
      background-color:powderblue;
      padding:.5em;
      word-break:break-all;
    
    }
    

    here is the working fiddle link http://jsfiddle.net/yudi/vbj10x4k/3/

    0 讨论(0)
  • 2020-12-28 12:28

    Instead of setting a max-width for your flex item, use a min-width declaration.

    By default, if no min-width is set, the item's content min-width is assumed and the flex item's width will never be smaller. By setting a min-width of e.g. 40%, the item will shrink to at most 40% of the flex parent.

    .child2, .child3 {
      min-width: 40%;
    }
    

    .parent{
      width:100%;
      display:flex;
      flex-direction:row;
      flex-wrap:nowrap;
      padding:1em;
      background-color:red;
      box-sizing:border-box;
    }
    .child1{
      background-color:mistyrose;
      padding:1em;
    }
    .child2{
      background-color:powderblue;
      padding:.5em;
      word-wrap: break-word;
      overflow-wrap: break-word;
      min-width: 40%;
    }
    .child3{
      background-color:lightyellow;
      padding:.5em;
      word-wrap: break-word;
      overflow-wrap: break-word;
      min-width: 40%;
    }
    <div class="parent">
      <div class="child1">
        question
      </div>
      <div class="child2">
       somethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomething
    
      </div>
      <div class="child3">
        Works well with long URLs: <a href="#"> https://thisisadamnlongurlcontainingneitherhyphensoradditionalperiods.com</a>
      </div>
    </div>

    See the code snippet above or the external demo: http://jsfiddle.net/vbj10x4k/5/

    0 讨论(0)
提交回复
热议问题