Home  >  Article  >  Web Front-end  >  How to implement English word segmentation with javascript+css

How to implement English word segmentation with javascript+css

PHPz
PHPzOriginal
2023-04-26 10:33:39808browse

In web development, we often encounter situations where the content is too long and cannot be fully displayed in one line. At this time, we need to use hyphenation technology to solve this problem. Word breaking refers to splitting a word at the appropriate position to fit it into the current line width, thus avoiding word overflow or ugly text layout. In English, hyphens are usually used to represent word breakers, which are called English hyphens.

This article will introduce two methods of using JavaScript and CSS to achieve English word segmentation, and discuss their advantages, disadvantages, and applicable scenarios.

1. Use the Hyphens attribute in css

In css3, a new Hyphens attribute is added to control the way of word segmentation. The Hyphens attribute accepts three values:

  • none: means no hyphenation;
  • manual: means manually specifying the position of hyphen;
  • auto: means automatic Identify and segment words.

By default, the Hyphens attribute is none. Word segmentation will only take effect when auto or manual is specified. Here we will focus on the auto value of the Hyphens attribute.

After setting the Hyphens attribute to auto, the browser will automatically perform word segmentation at the appropriate location. However, this attribute is currently only supported by some browsers, and different browsers implement it differently.

Specifically, Safari-based browsers (such as Safari and Chrome) have relatively comprehensive support for the Hyphens attribute, but you need to set the corresponding language (lang) attribute in the font and specify the text in the html. language properties to work properly. Browsers such as Edge and Firefox have weak support for this attribute.

The following is a css code example:

p {
    font-size: 16px;
    -webkit-hyphens: auto; /* Safari内核浏览器 */
    -ms-hyphens: auto; /* Edge浏览器 */
    hyphens: auto;
}

2. Use javascript to achieve English word segmentation

Use javascript to achieve English word segmentation, mainly using Hyphenator.js this library. Hyphenator.js implements word segmentation of English words based on the Liang algorithm. This algorithm can not only ensure the continuity of words, but also avoid hyphens at the end. It can also automatically adjust the position of hyphens according to the format of the font.

The use of the Hyphenator.js library is very simple. You only need to introduce the corresponding js and css files into the html and add the class attribute to the tags that need to be segmented.

The following is a javascript code example:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Hyphenator.js示例</title>
        <!-- 引入Hyphenator.js的js和css文件 -->
        <script src="Hyphenator.js"></script>
        <link rel="stylesheet" href="Hyphenator.css">
        <style>
            .content {
                font-size:16px;
                width:200px; /* 宽度为200px */
                border: 1px solid #ccc;
                padding: 10px;
            }
        </style>
    </head>
    <body>
        <!-- 带有断词效果的文字 -->
        <div class="content hyphenate">This is an example of using Hyphenator.js to hyphenate words properly.</div>

        <!-- 初始化 -->
        <script>
            Hyphenator.config({
                displaytogglebox:true, /* 显示开关按钮 */
                classname: 'hyphenate', /* 断词class名称 */
                hyphenchar: '-', /* 连字符为- */
                language: 'en-us', /* 使用英文断词 */
                minwordlength : 4 /* 最小断词长度为4 */
            });
            Hyphenator.run();
        </script>
    </body>
</html>

Compared with the Hyphens attribute in css, Hyphenator.js has wider browser support and can automatically adjust the position of hyphens based on the font. , the word segmentation effect is more natural. However, using Hyphenator.js also has some disadvantages. It requires the use of additional js files, which increases the download time of the page; and when generating html strings or dynamically loading content through ajax, the functions of Hyphenator.js need to be re-called to achieve interruption. word.

Conclusion

This article introduces two methods of using javascript and css to achieve English word segmentation. Each of them has some advantages and disadvantages, and you need to choose according to the actual situation when using them.

When using the Hyphens attribute, you need to pay attention to browser compatibility issues, and also pay attention to specifying the corresponding language attributes; while using Hyphenator.js, you need to introduce additional js files, which increases the download time of the page.

The above is the detailed content of How to implement English word segmentation with javascript+css. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn