创建两列响应式 css html 设计,当缩小或在移动设备上查看时合并为 1 列

Posted

技术标签:

【中文标题】创建两列响应式 css html 设计,当缩小或在移动设备上查看时合并为 1 列【英文标题】:create two column responsive css html design that merges into 1 column when shrunk or viewed on mobile device 【发布时间】:2014-08-22 13:27:57 【问题描述】:

所以我不是很精通网络,我在我的 WordPress 网站上创建了一个常见问题解答页面,我想制作一个响应式两列布局,其中包含一个问题列表,当用户单击其中一个锚点时,它需要他们一直到页面上的那个答案,就像大多数常见问题解答一样。我希望这些链接的列表采用两列布局,而网站上的所有其他内容都只是一列布局,我希望它非常流畅和美观。当屏幕缩小/被平板电脑或 iPhone 使用时,我希望两列布局最终合并为一列。这是我的代码,我觉得我很接近但是当我在 WordPress 中实现它时看起来很糟糕。有什么建议?

CSS

.linkcontainer 
  width:100%;
  padding-bottom: 25px;

.linkleft 
  width:50%;
  float:left;

.linkright 
  width:50%;
  float:left;


@media(max-width:400px) 
  .linkleft 
    width:100px;
    float:none;
    display:block;
    position:relative;
  
  .linkright 
    width:100px;
    float:none;
    display:block;
    position:relative;
  

HTML

<div class="linkcontainer">
  <div class="linkleft">
    <ul>
      <li><a href="#unique-identifier1">Can I ?</a></li>
      <li><a href="#unique-identifier2">How much does ?</a></li>
      <li><a href="#unique-identifier3">Is the process ?</a></li>
      <li><a href="#unique-identifier4">What do I need to ?</a></li>
      <li><a href="#unique-identifier5">What is the date?</a></li>
      <li><a href="#unique-identifier6">What information does the ?</a></li>
      <li><a href="#unique-identifier7">After being ?</a></li>
      <li><a href="#unique-identifier8">Where do I?</a></li>
      <li><a href="#unique-identifier9">How do I ?</a></li>
      <li><a href="#unique-identifier10">How do I ?</a></li>
    </ul>
  </div>
  <div class="linkright">
    <ul>
      <li><a href="#unique-identifier11">Registering as a </a></li>
      <li><a href="#unique-identifier12">Registering </a></li>
      <li><a href="#unique-identifier13">Am I able to charge ?    </a></li>
      <li><a href="#unique-identifier14">Can others be ?</a></li>
      <li><a href="#unique-identifier15">Can I perform ?</a></li>
      <li><a href="#unique-identifier16">What are the age limits ?</a></li>
      <li><a href="#unique-identifier17">What is the definition of ?</a></li>
      <li><a href="#unique-identifier18">What is the definition ?</a></li>
      <li><a href="#unique-identifier19">All other questions CLICK HERE</a></li>
      <li><a href="#unique-identifier20">All other OTHER questions CLICK HERE</a></li>
    </ul>
  </div>
</div>

【问题讨论】:

尝试在您的媒体查询样式中设置width: 100%; 什么不起作用?这是您的代码演示:jsfiddle.net/6njFL。它似乎按我的预期工作。尽管您可能希望在媒体查询中将宽度设置为 100% 而不是 100px 好吧,当我使用 firefoxs 开发人员响应式设计工具对其进行测试时,一旦我将宽度缩小到 320 以下,我就看不到列表的一半?应该有 20 个项目,当我下降到那个宽度时,我只看到 10 个......但是你的权利,它应该工作!这就是为什么我有点沮丧,这可能与wordpress有关吗? 【参考方案1】:

添加一个 CSS 移动媒体查询并将 .linkright.linkleft 的宽度设置为 100%(而不是现在的 100px)。

/* Smartphones (portrait and landscape) ----------- */
@media only screen and (max-device-width : 400px) 
   .linkleft 
     width:100%;
     float:none;
   
   .linkright 
     width:100%;
     float:none;
   

【讨论】:

【参考方案2】:

在您的媒体查询中,尝试使用百分比宽度值,例如

width:95%;

如果你删除浮动并添加它可能会有所帮助

clear:both;

【讨论】:

【参考方案3】:

您可以使用移动优先的方法来实现响应式布局。您应该自己扩展 CSS 以适应您的 WordPress 主题。

CSS

.linkcontainer 
    width: 100%;
    padding-bottom: 25px;
    overflow: auto;

.linkleft, .linkright 
    display: block;
    width: 100%;


@media only screen and (min-width: 481px) 
    .linkleft, .linkright 
        display: inline-block;
        width: 50%;
        float: left;
    

Here is the fiddle.

【讨论】:

+1。截至 TwentyTwelve(我认为?!)这是 WP 安装附带的“旗舰”主题的规范设计。这些主题非常适合学习响应式 WP 设计.. 可能,我写答案的时候没有查。据说,TwentyTwelve(以及之后的任何官方主题)是学习响应式设计 WordPress 主题开发的一个很好的例子。 啊这就是我想要的!!!但是我尝试了您的代码,当我在 wordpress 中预览它时,它只创建了 1 列……它现在甚至都没有显示。诡异的。我会继续搞砸的。我在本地对其进行了测试,并且可以正常工作。所以肯定是我的 wordpress 有冲突。 @user3688814 是显示空白还是什么都不显示?我已经编辑了我的答案和我的小提琴,看看它是否有效。看来我忘了把overflow: auto;.linkcontainer 不,它只是在单个列中显示所有这些 li 元素,即使窗口是最大的。

以上是关于创建两列响应式 css html 设计,当缩小或在移动设备上查看时合并为 1 列的主要内容,如果未能解决你的问题,请参考以下文章

使用顺风 css 的两列之间的响应式分隔器

HTML CSS 响应式地将图像堆叠在两列中

使用 Flex CSS 和 Bootstrap 进行响应式布局

css响应式问题,图片随页面宽度等比例缩小该怎么设置

BootStrap响应式项目实战之世界杯网页设计

BootStrap响应式项目实战之世界杯网页设计