仅在移动设备上的文本后面的按钮

Posted

技术标签:

【中文标题】仅在移动设备上的文本后面的按钮【英文标题】:Button behind text only on mobile 【发布时间】:2018-06-19 20:11:55 【问题描述】:

我正在尝试做一个像这样的非常简单的测验:

https://www.sitepoint.com/simple-javascript-quiz/

我试图让它更具响应性并添加了这一行:

<meta name="viewport" content="width=device-width,height=device-height,initial-scale=1.0"/>

效果很好,但是当我在每个问题的备选方案上添加长文本时,“下一个问题”按钮留在文本后面,仅在移动设备上(iphone 6,safari)。

我尝试添加一个 z-index: 1000;并没有改变:

button
  font-family: 'Work Sans', sans-serif;
    font-size: 22px;
    background-color: #279;
    color: #fff;
    border: 0px;
    border-radius: 3px;
    padding: 20px;
    cursor: pointer;
    margin-bottom: 20px;
    z-index:1000;

【问题讨论】:

尝试在z-index 之外添加position: relative(z-index 仅适用于非静态定位的元素)。 位置后:相对文本在按钮后面,但我无法阅读文本。如何强制按钮停留在文本下方(我的意思是在文本之后)? 检查我的答案@Rodrick - 应该解决你的问题:) 感谢@Xoog,它有效。你能帮我看看淡化效果吗?我从提到的链接中添加了 Chris 的答案中的 CSS。我应该做更多的事情吗? 【参考方案1】:

所以,这里有一些问题。如上所述,您需要从.quiz-container 中删除高度并从.slide 中删除绝对定位。

我的建议是将display: none; 添加到slide,然后将您的活动样式添加到display:block - 这将正确显示按钮应该在的位置。话虽如此,您将失去淡入淡出效果。您需要添加 this CSS 才能将其取回。希望这会有所帮助!

.quiz-container 
position: relative;
margin-top: 40px;


.slide 
width: 100%;
opacity: 0;
display: none;


.active-slide 
opacity: 1;
display: block;

【讨论】:

【参考方案2】:

您将position: absolute 设置为您的测验问题,因此他们将忽略您在 html 中设置的每个元素的空格。 一个大的z-index 只会将一个元素放在另一个元素之上,这就是为什么您会在按钮上方看到测验问题。 增加手机屏幕上quiz-container的高度即可解决问题(尝试使用@media screen)。

https://www.w3schools.com/cs-s-ref/css3_pr_mediaquery.asp

我建议您找到另一种方式将您的问题放在页面顶部,而不是使用position: absolute

【讨论】:

【参考方案3】:

问题实际上是您的测验容器 div 具有 200 像素的固定高度,并且您无法使其流动,因为您的幻灯片具有 position:absolute,这会将它们从流程中移除并防止父级相应地增加高度.

所以你需要重新考虑如何去做。

一种有趣的方法是使用 flexbox,通过 order 属性控制要显示的幻灯片。

.quiz-container 
    margin-top: 40px;
    overflow: hidden;


#quiz
    display: flex;

.slide 
    opacity: 0;
    transition: opacity 0.5s;
/*gives each slide 100% width and prevents it from growing or shrinking*/
    flex: 0 0 100%; 


.active-slide 
    opacity: 1;
    /*sets the order to -1, so it's positioned before all other flex-items*/
    order: -1;

【讨论】:

以上是关于仅在移动设备上的文本后面的按钮的主要内容,如果未能解决你的问题,请参考以下文章

仅在移动设备上的垂直和水平中心

Google Signin 无法点击,并且仅在移动设备上登录时冻结

可折叠的 div,但仅在移动设备上

网站仅在移动设备上加载不一致

向移动视图上的引导导航栏切换按钮添加文本提示

Leaflet / LayersControl / 移动设备上的自定义按钮