简体   繁体   中英

FireFox word breaks OK with css, but one letter at a time, not where hyphens go

FireFox word breaks OK with css, but one letter at a time, not where hyphens are supposed to be???

NOT FireFox:

不是Firefox分词

FireFox:

FireFox分词

Here's the CSS:

.superLongStuff {   
    /*
        SUPER LOOOOOOOOOOOONG WORD STUFF ...
    */
    /* These are technically the same, but use both */
    overflow-wrap: break-word;
    word-wrap:     break-word;

    -ms-word-break: break-all;
    /* This is the dangerous one in WebKit, as it breaks things wherever */
    word-break:     break-all;
    /* Instead use this non-standard one: */
    word-break:     break-word;

    /* Adds a hyphen where the word breaks, if supported (No Blink) */
    -ms-hyphens:     auto;
    -moz-hyphens:    auto;
    -webkit-hyphens: auto;
    hyphens:         auto;  
}

Remove the word-wrap when you're using hyphens . Since, you used word-wrap they will just wrap where the word is breaking to the next line.

We use hyphens to demonstrate or show which word is being continued in the next line, but break-word divides the word into two and it's no longer a single segment of word that's why you don't see any hyphen.

Here's the demonstration of both:

 #a { -webkit-hyphens: auto; -moz-hyphens: auto; -ms-hyphens: auto; hyphens: auto; } #b { overflow-wrap: break-word; word-wrap: break-word; -ms-word-break: break-all; word-break: break-all; word-break: break-word; -webkit-hyphens: auto; -moz-hyphens: auto; -ms-hyphens: auto; hyphens: auto; } 
 <article id="a" lang="en"> <h1>Article A</h1> <p>As designers attempting to creating functional work, oftentimes we are required to make our designs look as finished as possible.For example, if you are designing a brand new website for someone, most times you will have to make sure the prototype looks finished by inserting text or photos or what have you. The purpose of this is so the person viewing the prototype has a chance to actually feel and understand the idea behind what you have created. Now in some circumstances, designers may use squares and rectangles to help you visualize what should and could be in a specific location.We all have our own techniques, but one of the most effective techniques is to actually put some text where text goes and some pictures where pictures go to make sure everyone can see the vision you've created. Coming up with filler text on the fly is not easy, but it is becoming more and more of a requirement. Fortunately, some designers and developers around the web know this and have put together a bunch of text generators to help you present your vision.Some are standard (like the always popular 'Lorem Ipsum' generators) and some are really fun. Either way, pick one of your favorites from below and start generating text and completing your vision.</p> </article> <br><br><hr><br> <article id="b" lang="en"> <h1>Article B</h1> <p>As designers attempting to creating functional work, oftentimes we are required to make our designs look as finished as possible.For example, if you are designing a brand new website for someone, most times you will have to make sure the prototype looks finished by inserting text or photos or what have you. The purpose of this is so the person viewing the prototype has a chance to actually feel and understand the idea behind what you have created. Now in some circumstances, designers may use squares and rectangles to help you visualize what should and could be in a specific location.We all have our own techniques, but one of the most effective techniques is to actually put some text where text goes and some pictures where pictures go to make sure everyone can see the vision you've created. Coming up with filler text on the fly is not easy, but it is becoming more and more of a requirement. Fortunately, some designers and developers around the web know this and have put together a bunch of text generators to help you present your vision.Some are standard (like the always popular 'Lorem Ipsum' generators) and some are really fun. Either way, pick one of your favorites from below and start generating text and completing your vision.</p> </article> 

a) Don't use word-break when you want to use hyphenation. It will simply always break the words.

b) To be on the safe side, add a language attribute to the container (can be html , body , or also the containing div , like <div class="a" lang="en"> - see below.

 .a { width: 240px; border: 1px solid #eee; } .x { /* Adds a hyphen where the word breaks, if supported (No Blink) */ -ms-hyphens: auto; -moz-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; } 
 <div class="a" lang="en"> <p class="x"> A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine. I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil existence, that I neglect my talents. I should be incapable of drawing a single stroke at the present moment; and yet I feel that I never was a greater artist than now. </p> </div> 

When you want to use hyphenation don't use word-break. Let the browser automatically insert hyphens where appropriate.

.superLongStuff {   
    -ms-hyphens:     auto;
    -moz-hyphens:    auto;
    -webkit-hyphens: auto;
    hyphens:         auto;  
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM