css - 将文本放在响应图像上

标签 css responsive-design

我有问题,我不知道如何解决。 我想创建 3 个图像(箭头,我之前画过)并在每个图像中放入文本,所有这些都应该是响应式的...... 这是我的代码:

HTML:

<div class="arrows">
    <div class="arrow1">    
        <h2></h2>
        <p></p>
        </div>
    <div class="arrow2"> 
        <h2></h2>
        <p></p>  
    </div>

            <div class="arrow3">
                <h2></h2>
                <p></p>
            </div> 

CSS:

        .arrows {
            width: 1000px;
            margin: 0 auto;

            .arrow1 {
                background: url("features/arrow-blue.png") top center no-repeat;
                min-height: 250px;
            }

            .arrow2 {
                background: url("/features/arrow-orange.png") top center no-repeat;
                min-height: 250px;
            }

            .arrow3 {
                background: url("/features/arrow-red.png") top center no-repeat;
                min-height: 250px;
            }

            p {
                padding: 0 300px 0 120px;
            }
        }

现在箭头根本没有响应,它们充当封面(背景) 我想做叠加,但我想放置文本而不是颜色。

P.S Bootstrap 2

谢谢!

最佳答案

我在 2 或 3 个月前刚刚建立的网站上遇到了几乎完全相同的任务。 (实际上我是把文字放在圆圈里,而不是箭头,但原理是一样的)。如果我向您展示它的 CSS,您可以根据您的箭头调整它。

基本上我使用绝对定位将元素放在彼此之上。当然,文本有一个 z-index 来覆盖它,还有一个透明的背景。然后为了让事情响应,并保持用户可能运行的任何文本大小,媒体查询有 em 单位的断点,而不是 px 单位。网址是http://www.enigmaticweb.com ,它是包含 Logo 和 Logo 下方标语的两个圆圈。

棘手的一点是让位置完全正确,这样无论屏幕宽度如何,两个东西都可以流畅地叠放在一起;您将不得不反复试验才能获得正确的确切位置。这是 HTML:

<div id='usrSiteNameDiv'></div>
<p id='gpSiteName'><a href='http://www.enigmaticweb.com'>The Enigmatic Web</a></p>
<div id='usrSiteSloganDiv'></div>
<p id='gpSiteSlogan'>Occasional web&nbsp;development blog articles.....</p>

圆圈不是图像(它们实际上是由圆 Angular 和零宽度/高度的 div 制作的)但这不应该影响你,我可以很容易地在文本下面使用图像。您可能遇到的一个问题是文本的良好布局;在此文本中的某个时刻,浏览器以一种使其在圆圈内看起来不平衡的方式换行文本,这就是为什么您会看到那里的硬空间以强制它以不同的方式换行。

CSS(桌面屏幕宽度)是:

#usrSiteNameDiv {
        position   : absolute;
        border     : 4px solid blue;
        border-radius: 6.2em;
        box-shadow : 5px 0 15px;
        height     : 12em;
        width      : 12em;
        background : #99ffff; 
        top        : 0;
        left       : 3em; 
        z-index    : 2;
  }
  #gpHeader  #gpSiteName {
        position   : absolute;
        background : transparent;
        font-size  : 200%;
        width      : 5em;
        top        : 1.2em;
        left       : 1.5em;   /* half the div width cos font in this div is twice the size */
        text-align : center;
        padding-left: 0.6em;
        z-index    : 2;
  }
      #usrSiteSloganDiv {
        position   : absolute;
        bottom     : 0;
        left       : 13.5em; 
        border     : 4px solid #0033cc;
        border-radius: 5.17em;
        box-shadow : -5px -2px 2px 0px darkblue;
        height     : 10em;
        width      : 10em;
        background : #99ffff; 
      }
  #gpHeader  #gpSiteSlogan {
        position   : absolute;
        bottom     : 1.7em;
        left       : 13.5em; 
        width      : 9em;
        background : transparent;
        text-align : center;
        padding-left: 1em;
        font-size  : 100%;
  }

它的响应部分没什么可做的,除了手机我把标志移到左边缘,标语从圆圈中取出并显示在标志下方的一行中:

@media all and (max-width: 27em) 
{
    #usrSiteNameDiv,
      #gpHeader  #gpSiteName {
        left        : 0;
  }
  #usrSiteSloganDiv {
        display     : none;
  }
  #gpHeader  #gpSiteSlogan {
        bottom      : 0;
        left        : 0;
        width       : 90%;
  }

但由于我们处理的是文本,因此使用 em 单位作为断点可确保无论用户在浏览器中使用何种文本大小,它都能正确运行。

我认为这就是一切。我希望这会为您提供足够的信息来进行您的设计。

关于css - 将文本放在响应图像上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27045387/

相关文章:

responsive-design - 大多数流体和柱滴响应设计模式之间的区别

javascript - 如何自动向下滚动聊天框 (div)?

css - 无法居中数据列表

javascript - 将鼠标悬停在一个元素上会使它产生动画,而不仅仅是改变它的 CSS 属性

css - 如何在不重复自己的情况下共享 CSS 子类

html - 如何创建要在网页中使用的 Logo 和图标

css - 1 个 Div 标签中的 2 个相邻图像

javascript - 在响应式设计中按比例裁剪图像?

css - 使用边距设置跨度之间的距离

html - 使用 Bootstrap,如何根据断点将 div 放在不同的行中?