【问题标题】:Center Arrows Vertically On Both Sides of DivDiv 两侧垂直居中箭头
【发布时间】:2015-09-26 03:09:35
【问题描述】:

我有两件我想不出来的东西。我试图在 div 框的任一侧将image 中显示的两个箭头居中(无论高度如何,它们总是居中)。该框是最小高度,我需要根据框的高度将箭头居中。

此外,当媒体屏幕启动时,无论用户滚动到哪里,我都希望它们始终显示在左侧和右侧。当用户滚动时,我不知道如何将它们保持在原位。

感谢您提供的任何帮助。

CSS

#recout{
text-align:center;
width: 80%;
margin: 0 auto;
text-align: center;
}
.recleft,
.recright{
    display: inline-block;
    width: 50px;
    min-height: 550px;
    margin: 5px;
}
.recin{
    background: #000000;
    display: inline-block;
    vertical-align:top;
    min-height: 550px;
    margin: 0;
    width: 550px;
    border-radius: 70px 70px 0 0;
}

HTML

<div id= "recout">

<div class= "recleft"> 
    <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
  <circle fill="#9FA1A4" cx="25" cy="25" r="25"/>
  <g>
    <g>
      <path fill="#FFFFFF" d="M31.2,8.4c1,0,2,0.4,2.8,1c0.9,0.7,1.4,1.8,1.4,2.9c0,1.1-0.5,2.2-1.4,2.9l-11.8,10l11.8,10
        c0.9,0.7,1.4,1.8,1.4,2.9s-0.5,2.1-1.4,2.9c-1.5,1.3-4,1.3-5.5,0L13.2,28.1c-0.9-0.7-1.4-1.8-1.4-2.9c0-1.1,0.5-2.1,1.4-2.9
        L28.4,9.4C29.2,8.8,30.2,8.4,31.2,8.4z"/>
    </g>
  </g>
  </svg>
</div>

<div class= "recin"></div>

<div class= "recright">
    <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
  <circle fill="#9FA1A4" cx="25" cy="25" r="25"/>
  <g>
    <g>
      <path fill="#FFFFFF" d="M20,42c-1,0-2-0.4-2.8-1c-0.9-0.7-1.4-1.8-1.4-2.9c0-1.1,0.5-2.2,1.4-2.9l11.8-10l-11.8-10
        c-0.9-0.7-1.4-1.8-1.4-2.9s0.5-2.1,1.4-2.9c1.5-1.3,4-1.3,5.5,0L38,22.3c0.9,0.7,1.4,1.8,1.4,2.9c0,1.1-0.5,2.1-1.4,2.9L22.7,41
        C22,41.7,21,42,20,42z"/>
    </g>
  </g>
  </svg>
</div>

【问题讨论】:

  • “当媒体屏幕启动时”是什么意思?当您的窗口小于一定大小时?
  • 是的,对不起。我没有澄清这一点。在移动屏幕尺寸下,无论用户滚动到哪里,它都会保留左右按钮。

标签: css mobile responsive-design position css-position


【解决方案1】:

如果我理解正确,您希望 svg 分别在 .recleft 和 .recright 内垂直居中。

为此,请在 svg 周围的包装器上使用 position: absolute(将其直接应用于 svg 时看起来很奇怪),设置 top: 50%,这将使 div 居中,最后将 position: relative 应用于父级,所以包装器 div 相对于该父级绝对定位。看到这个JSFiddle

对于移动视图的问题,您需要像这样设置position: fixed;https://jsfiddle.net/m9xqnh8y/1/

对于如果.recin 增加高度的问题。我制作了一个包含recleftrecinrecright 的弹性框,这样其他 div 会自动占据整个高度,因此箭头也会保留在中间。见here

【讨论】:

  • 非常感谢。这绝对有助于解决问题的第一部分。当媒体屏幕是 320px 宽时,我如何在 div 滚动时保持 svg 的静态?
  • 实际上 - 当 recin 类中的内容大于最小高度时,我遇到了问题,当 recin 类高于最小高度时,svg 不会扩展高度。
  • 我希望这现在回答了你的问题 :)
猜你喜欢
  • 2019-12-30
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
相关资源
最近更新 更多