通常情况下汉字会自适应标签宽度,自动换行显示,但是对于英文字母或数字就会溢出显示,不会自动折行显示,例如
test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link href="tset.css" rel="stylesheet" type="text/css">
</head>
<body>
<p>1111111111111111111111111111 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111</p>
<p>史蒂夫空间 发快递放假 的款式设计范德萨地方经济史 蒂夫空间发快递放假的款式 设计范德萨地方经济史蒂夫空间发快递放假的款式设计范德萨地方经济上岛咖啡健康大数据反馈到九分裤史蒂夫街道上看风景</p>
</body>
</html>
test.css
p{
width:300px;
border: 1px solid #cccccc;
}
运行效果为
但是我们想要的效果是这样的:
要达到上下两个p标签显示效果一致
可以结合使用word-wrap和word-break的属性解决这个问题
那么test.css改为如下代码就可以解决这个问题
p{
width:300px;
border: 1px solid #cccccc;
white-space: normal;
word-wrap: break-word;
word-break: break-all;
}
word-break:break-all 允许在单词内换行
white-space:normal 默认空白会被浏览器忽略不换行 当opera浏览器不兼容word-break属性是可以使用white-space忽略空白,两个属性混合使用。
word-wrap:break-word 在长单词或 URL 地址内部进行换行。
在实际应用中white-space:normal,word-wrap:break-word ,word-break:break-all 同时使用可以使文本忽略不按空格换行。如果想实现按单词折行,可以将word-break:break-all省略。