HTML标签的width属性对数字和字母不生效

13 篇文章 1 订阅

目录

文本自动换行样式 word-break: break-all

强制换行 word-break: break-all 怎么用 ?

white-space 属性的 normal 值和 nowrap 值的区别


HTML 标签 的 width 属性设置为 200px ,但对 数字 和 字母 无效 ?对中文有效 ;

数字 或者 字母 的 长度 大于 200px ,依然 不换行 ,

似乎是将这一长串的 数字 当做了 一个汉字 一般 ,

能把单元格顶到他们的换行处才换行
数字 和 字母 有 空 格 的话,确实是 200px 换行 ,

但 一连串 无空格 的 数字 怎么让它处在 width=200px 的 约束 下呢 ?


问题解决结果:
<td style="word-break: break-all;" width="200"> '


连续 不间断 字符间没有 空格 ,在西文中这是一个完整的单词( word ),

默认情况下,在 任何标签 里用 连续 不间断 的 字母 或者 数字 都不会自动换行的。

一般这种情况也多数是在写 demo 测试的时候才会出现,正常使用是极少出现的。

不过在某些地方能有预见性的进行 强制换行 那也未尝不是一种好习惯。


汉字 一个字 是一个 word ,而 英文 和 数字 有空格 的时候才会认为是 一个 word

文本自动换行样式 word-break: break-all

未加该 word-break: break-all 样式时,

联系地址数据加载完全,但是显示不全。

全选复制可以得到所有字符。

加了 word-break: break-all 样式时,

联系地址数据加载完全,换行显示出全部字符。 

<template>
  <div>
    <li class="table-li">
      <div class="table-li-name">职位:</div>
      <div class="table-li-value" v-text="form.title ? form.title : '-'"></div>
    </li>
    <li class="table-li">
      <div class="table-li-name">性别:</div>
      <div
        class="table-li-value"
        v-text="form.gender === 0 ? '男' : '女'"
      ></div>
    </li>
    <li class="table-li">
      <div class="table-li-name">用户签名:</div>
      <div class="table-li-value" v-text="form.sign ? form.sign : '-'"></div>
    </li>
  </div>
</template>

<script>
export default {};
</script>

<style lang="scss" scoped>
.table {
  &-list {
    width: 100%;
    overflow: hidden;
  }
  &-li {
    width: 100%;
    padding: 8px 0;
    overflow: hidden;
    color: #303133;
    &-name {
      float: left;
      width: 84px;
      line-height: 20px;
      text-align: right;
      font-family: MicrosoftYaHei;
      font-size: 14px;
      color: #303133;
      letter-spacing: 0;
    }
    &-value {
      float: left;
      width: calc(100% - 120px);
      line-height: 20px;
      font-family: MicrosoftYaHei;
      margin-left: 14px;
      font-size: 14px;
      color: #303133;
      letter-spacing: 0;
      // 连续字符实现自动换行
      word-break: break-all;
    }
  }
  &-ul {
    margin: 14px 40px;
    padding: 0px;
  }
}
</style>

强制换行 word-break: break-all 怎么用 ?

一般情况下,元素拥有 默认的 white-space: normal

( 自动换行,PS:不换行 是 white-space: nowrap ),

当录入的 文字 超过定义的 宽度 后会 自动 换行,

但当录入的 数据 是一堆 没有 空格 的 字符 或 字母 或 数字

( 常规数据应该不会有吧,但有些测试人员是会这样子做的 ),

超过 容器宽度 时就会把 容器撑大 ,不换行。


解决方法( 以 IE ,Chrome , FF 为 测试浏览器):

{ 
 word-break: break-all;
 word-wrap: break-word;
}

以下是对这两种方法的区别说明:

1、word-break: break-all

例如 div 宽 200px ,它的 内容 就会到 200px 自动 换行,

如果该行末端有个 英文单词 很长( congratulation :祝贺  等 ),

它会把 单词 截断,变成该行末端为 conra ( congratulation 的 前段 部分 ),

下一行 为 tulation( conguatulation )的 后段部分了。

2、word-wrap: break-word 例子与上面一样,

但区别就是它会把 congratulation 整个单词 看成 一个整体 ,

如果该行 末端 宽度不够显示整个单词,它会自动把 整个单词 放到下一行,

而不会把单词截断掉的。


word-break: break-all 支持版本 :

IE5 以上 ,该行为与 亚洲语言 的 normal 相同 。

也允许 非亚洲语言 文本行的任意字内断开。

该值适合包含一些 非亚洲文本的 亚洲文本。

word-wrap: break-word 支持版本 :

IE5.5 以上 ,内容将在边界内换行。

如果需要,词内换行 ( word-break ) 也将发生。

表格自动换行,避免撑开。


语法:

word-break: normal  |  break-all  |  keep-all

参数:

normal : 依照 亚洲语言 和 非亚洲语言 的 文本规则,允许在字内 换行

break-all : 该行为与 亚洲语言 的 normal 相同。

也允许 非亚洲语言 文本行的任意字内断开。

该值适合包含一些 非亚洲文本 的 亚洲文本

keep-all : 与所有 非亚洲语言 的 normal 相同。

对于 中文,韩文,日文,不允许 字断开。

适合包含少量 亚洲文本 的 非亚洲文本


语法:

word-wrap : normal  |  break-word

参数:

normal : 允许内容顶开指定的容器边界

break-word : 内容将在边界内换行。

如果需要,词内换行( word-break )也行发生说明:

设置 或 检索 当 当前行 超过指定容器的边界时 是否断开 转行。

  建议:word-break 用 3C 检测会显示问题的,导致 百度快照 也会出问题

- 这个属性 OPERAFIREFOX 浏览器也不支持 word-break 属性

可以用 white-space: normal; 来代替,

这样在 FireFox 和 IE 下就都能正确换行,

而且要注意,单词 间的 空格 不能用来代替,不然不能正确 换行。

white-space 属性的 normal 值和 nowrap 值的区别

white-space 属性

  1. normal :默认 对文本的处理方式,文本 自动处理 换行,到达容器边界的内容会自动转到下一行。
  2. nowrap :强制在同一行内显示所有文本,直到文本结束或者文本后面有标签。

举例代码 :

<template>
  <div class="white">
    <h3>这是一行文字 这是一行文字 这是一行文字</h3>
  </div>
</template>

<script>
export default {};
</script>

<style lang="scss" scoped>
.white {
  width: 200px;
  height: 200px;
  background-color: #3dff48;
  /*white-space: normal;*/
  white-space: nowrap;
}
</style>

1. white-space: normal 效果图

2. white-space: nowrap 效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值