根据文本长度调整快餐栏消息的大小[重复]

Posted

技术标签:

【中文标题】根据文本长度调整快餐栏消息的大小[重复]【英文标题】:Size snackbar message based on text length [duplicate] 【发布时间】:2021-04-15 23:27:35 【问题描述】:

当我的应用程序中有一个成功的补丁或帖子时,我会弹出一条快餐栏消息。根据正在更新的对象的上下文,这些消息有时可能很短或很长。

这最初设置为left: 50%,但我更改了它,因为有时消息方式未正确居中。无论文本有多长,如何使此小吃栏始终居中?

#snackbar 
     visibility: hidden;
     min-width: 250px;
     margin-left: -125px;
     background-color: $apple;
     color: #fff;
     text-align: center;
     border-radius: 5px;
     padding: 16px;
     position: fixed;
     z-index: 1;
     left: 40%;
     bottom: 30px;
 

html如下

<body>
    <%= render "shared/sidenav" if current_user %>
    <div id=<%= "#'main' if current_user" %>>
      <% flash.each do |name, msg| %>
        <%= content_tag :div, msg, class: "alert alert-#name", id: 'alert' %>
      <% end %>
      <%= yield %>
      <div id="snackbar"></div>
    </div>
  </body>

Snackbar 在 HTTP 请求时可见。

【问题讨论】:

您好,请同时发布您的 HTML。还有一些你的 CSS 代码。 【参考方案1】:

您可以为此使用left: 50%transform: translateX(-50%) 的组合:

#snackbar 
  position: fixed;
  min-width: 250px;
  background-color: green;
  color: #fff;
  text-align: center;
  border-radius: 5px;
  padding: 16px;
  z-index: 1;
  left: 50%;
  transform: translateX(-50%);
  bottom: 30px;
<div id="snackbar">
  <p>Eleifend nec eget. Id massa quis eu vitae elit. Bibendum interdum semper. Donec libero duis.</p>
</div>

小例子

#snackbar 
  position: fixed;
  min-width: 250px;
  background-color: green;
  color: #fff;
  text-align: center;
  border-radius: 5px;
  padding: 16px;
  z-index: 1;
  left: 50%;
  transform: translateX(-50%);
  bottom: 30px;
<div id="snackbar">
  <p>Eleifend nec eget.</p>
</div>

left 基于框的左侧。 Translate 是基于框的宽度,因此这实际上将框的左边缘移动到元素父元素的中间,然后将其拉回框宽度的 50%。

【讨论】:

以上是关于根据文本长度调整快餐栏消息的大小[重复]的主要内容,如果未能解决你的问题,请参考以下文章

java中如何根据字符串长度来调整文本框大小

如何根据字符串长度和标签大小调整标签的字体大小

根据标签长度调整从 xib 创建的视图大小

如何根据文本长度或背景图像调整按钮宽度

如何在 Xcode 4 中正确创建调整为文本长度的 UIButton?

怎么在ChemDraw中缩短双键长度