【问题标题】:CSS - text flow and centeringCSS - 文本流和居中
【发布时间】:2016-09-15 13:51:00
【问题描述】:

我正在使用 Rails 构建一个事件应用程序。在我的索引页面上,每个事件都由相关图像表示,事件标题和日期在其上转换。像这样——

理想情况下,我希望用户为他们的活动输入一个“直截了当”/“简洁”的标题,但是我没有真正的方法可以控制它,我也不想这样做。当我尝试输入过长的标题时,会发生这种情况 -

我需要文本流动并且标题(和日期)绝对居中在图像的中间。此刻它打破(如下所示)并紧贴左边。这是我的相关代码目前有 -

events.index.html.erb

<ul>

                    <% @events.each do |event| %>
                <li class="events"> 
                        <%= link_to (image_tag event.image.url), event, id: "image" %>
                    <div class="text">  
                        <h2><%= link_to event.title, event %></h2>
                        <h3><%= link_to event.date.strftime('%A, %d %b %Y'), event %></h3>
                </li>       
                    <% end %>
                    </div>

            </ul>       

events.css.scss

  li.events { 
    width: 350px; 
    height: 350px; 
    float: left;
    margin: 20px;
    list-style-type: none;
    position: relative; 

}

li.events img { 
    width: 100%; 
    height: 100%; 
    border-radius: 20px;





}

div.text  { 


    padding: 25px; 
    position: absolute; 
    top: 100px;
    left: auto;



}

div.text a {
    text-decoration: none;
    color: #FF69B4;
    font-weight: bolder;
    padding: 5px;
    border-radius: 10px;    
    background-color: rgba(255,255,255,.8);
    -webkit-backdrop-filter: invert(10px);
    margin: 0 auto;
    text-align: center;


}

我正在使用引导 gem,但不确定这是否与此问题相关。感谢您提供任何帮助。

【问题讨论】:

  • 尝试将text-align:center;添加到div.text
  • 这还不够。对于突然中断的长标题,我仍然感到奇怪的重叠,有些标题居中,有些则没有。不知道为什么...
  • 你试过设置height / line-height吗?我看到重叠只出现在标题中,所以line-height 可以解决它。
  • 不,我没有,我在哪里设置?我认为这更多地与文本流有关,我错了吗?
  • 逻辑上应该设置为div.text a,但以防万一你也可以在此之后尝试div.text。我想这与这样一个事实有关,即当文本转到另一行时,它不“知道”有一个填充(因为它在同一个标​​签内)并且直接位于字母下方。我不是大师,但应该是这样的。

标签: html css ruby-on-rails twitter-bootstrap ruby-on-rails-4


【解决方案1】:

我试图实现这种效果,并且发现了许多对我有帮助的教程。不幸的是,border-radius 这样我没有发现任何有用的东西。 但是,另一方面,行首和行尾的空格,我修复了它:

https://fiddle.jshell.net/s112Lao0/

如您所见,没有border-radius。但是有一个不错的padding

来源:

https://css-tricks.com/multi-line-padded-text/

http://geoffmuskett.com/text-with-background-padding-on-the-end-of-each-line-and-a-gap-between-lines/

https://fiddle.jshell.net/s112Lao0/

我希望这会有所帮助。 :)

【讨论】:

  • 那么,基本上,边界半径换行符是不可修复的?
  • 我希望实现 geoff muskett 代码,但我仍然让它一直紧贴左边没有边框??
  • 回答第一个问题:是的!要应用此效果,css 必须将这两行“视为”不同的元素,但事实并非如此,它只是一个。我能做的最大的事情就是应用那个“填充”:/但是如果有人有一个好主意,我的代码就在那里,随时更新它:)
  • 回答第二个问题: 你的main-box div 必须有填充。在我的示例中,我应用了padding: 30px;
猜你喜欢
  • 1970-01-01
  • 2014-10-22
  • 1970-01-01
  • 2012-07-03
  • 2021-10-18
  • 2012-01-01
  • 1970-01-01
  • 2013-05-25
  • 1970-01-01
相关资源
最近更新 更多