jquery - CSS - 停止跨度内的文本溢出

标签 jquery html css mobile

我正在尝试在移动应用程序的菜单栏中实现 2 个大厅,只要每个大厅的文本不超过容器的宽度,一切看起来都很好:

enter image description here

但是,如果文本太长,一切都会出错:

enter image description here

容器的高度需要固定在 40px,所以我认为最好的解决方案是截断文本。但是,这里可以有 2 或 3 个大厅,所以我无法在跨度上设置特定宽度,如果我使用 div 而不是布局会变得乏味。图标和文字需要放在大厅的中间,所以使用 float 会使事情变得一团糟。有人有什么想法吗?

HTML:

<div class="view lobby-menu-view">
<ul class="lobby-menu-list">
    <li data-lobby-type="lobby1" class="item">
        <div class="borderStyle"></div>
        <a href="#lobby/lobby1">
            <span class="lobby1 icon-home icon"></span>
            <span>Lobby 1</span>
        </a>
    </li>
    <li data-lobby-type="lobby2" class="item active">
        <div class="borderStyle"></div>
        <a href="#lobby/lobby2">
            <span class="lobby2 icon-home icon"></span>
            <span>Lobby 2</span>
        </a>
    </li>
</ul>

CSS:

div.lobby-menu-view {
z-index: -1;
position: relative;
margin: 0;
padding: 0;
width: 100%;
-webkit-box-shadow: 0px 2px 2px 0px rgba(97,59,53,0.7);

ul.lobby-menu-list {
      margin-bottom: 0;;
      text-align: center;
      list-style-type: none;
      margin: 0;
      width: 100%;
      display: table;
      li {
          text-align: center;
          height:40px;
          max-width: 220px;
          float: none;
          line-height: 40px;
          display: inline-block;
          .borderStyle {
               position: absolute;
               height: 50%;
               width: inherit;
               top: 25%;
           }
      }
      a {
          display: block;
          width: 100%;
          height: 100%;
          text-decoration: none;
          position: relative;
          color: #615452;
          font-size: 14px;
          span {
              position: relative;
              vertical-align: middle;
          }
          span.icon {
              display: inline-block;
              background-size: contain;
              width: 20px;
              height: 20px;
          }
      }
      li.active {
          padding: 0px;
          a {
              border-bottom-width: 6px;
              color:red;
              border-bottom-color:red;
              border-bottom-style: solid;
              box-sizing: border-box;
          }
      }

最佳答案

使用word-break: break-all :

.lobby-menu-list {
    word-break: break-all;
}

演示

.lobby-menu-view {
    max-width: 400px;
}

.lobby-menu-view li {
    width: 50%;
    float: left;
}

.lobby-menu-list {
    word-break: break-all;
}
<div class="view lobby-menu-view">
    <ul class="lobby-menu-list">
        <li data-lobby-type="lobby1" class="item">
            <div class="borderStyle"></div>
            <a href="#lobby/lobby1">
                <span class="lobby1 icon-home icon"></span>
                <span>Lobby 1</span>
            </a>
        </li>
        <li data-lobby-type="lobby2" class="item active">
            <div class="borderStyle"></div>
            <a href="#lobby/lobby2">
                <span class="lobby2 icon-home icon"></span>
                <span>Lobbergergrgergergergergergegergergergergergergre</span>
            </a>
        </li>
    </ul>
</div>

关于jquery - CSS - 停止跨度内的文本溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35934872/

相关文章:

html - 在 child 或窗口高度的 100% 之后缩放一个 div

html - 尝试制作一个包含多列的子菜单

jQuery 验证忽略占位符!

jquery - 如何在输入时过滤 jquery 自动完成数据

javascript - Backbone.js - 发出 POST 请求而不保存模型

css - 无法将 div 层定位在 html slider 之上

CSS 导航图像不会停止堆叠

jquery - 为什么这个 jQuery.post 不能与 Perl CGI 一起使用?

html - 侧面导航中的 Angular Material 滑动过渡?

html - CSS HTML 按钮居中