html – Tricky CSS布局

前端之家收集整理的这篇文章主要介绍了html – Tricky CSS布局前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我正在制作一个布局相当有问题的网站。有黑色块表示的四个角图像TL,TR,BL和BR。深橙色区域是主要内容(宽度为960像素),外部区域由绿色箭头表示为浏览器窗口。见图:

Diagram http://dotcafedesigns.com/stackoverflow/problem.gif

顶部的图像代表站点尽可能狭窄 – 如果它比定义的区域大,应该不应该没有滚动条,它不应该被允许比这窄(960px)窄。底部的两个图像代表浏览器的不同宽度。

底部左右黑色块(图像)应始终位于屏幕的左下角,除非宽度降至960像素,否则BL和BR图像应略微进入主区域。如果网站缩小到200像素,则BR图片不应该仍然在右边。

在这一点上,我并不关心它在IE6中正常工作(我可以大致工作),但是我甚至无法弄清楚如何完全没有Javascript或非常实验的CSS。目前我正在使用绝对定位的div的工作,但不正确。

我想我会愿意接受一些JS,如果没有其他方式,但我宁愿不。

回答非常感谢!

解决方法

不需要Javascript。至少在大多数现代浏览器中。使用简单的定位和一个@media查询我把它关掉了:
<head>
  <style type="text/css" media="screen">
    body {
      margin: 0;
      padding: 0;
      font-family: sans-serif;
      background: orange;
      text-align: center;
      color: black;
      overflow-x: hidden;
    }
    #content {
      width: 960px;
      margin: 0 auto;
      padding: 20px 0;
      min-height: 800px;
      background: #cc6600;
      z-index: 0;
    }
    .image {
      background: black;
      color: white;
      height: 60px;
      width: 100px;
      padding: 20px 0;
      z-index: 1;
      opacity: .95;
    }
    #top {
      width: 960px;
      margin: 0 auto;
      position: relative;
      overflow: visible;
    }
    #top .image {
      position: absolute;
    }
    #top .left {
      left: -80px;
    }
    #top .right {
      right: -80px;
    }
    #bottom {
      position: fixed;
      bottom: 0;
      width: 100%;
      height: 100px;
    }
    #bottom .image {
      position: absolute;
    }
    #bottom .left {
      left: 0;
    }
    #bottom .right {
      right: 0;
    }

    @media all and (max-width:1120px) {

      #container {
        width: 960px;
        margin: 0 auto;
        position: relative;
        overflow: visible;
      }
      #bottom .left {
        left: -80px;
      }
      #bottom .right {
        right: -80px;
      }    

    }
  </style>
</head>
<body>
  <div id="top">
    <div class="left image">left image</div>
    <div class="right image">right image</div>    
  </div>
  <div id="content">
    content
  </div>
  <div id="bottom">
    <div id="container">
      <div class="left image">left image</div>
      <div class="right image">right image</div>
    </div>
  </div>
</body>

这可能属于您对“极度实验性CSS”的描述,但我认为您会感到惊讶,它有多少支持,以及使用JS轻松引导的简单方法 – 只需检查浏览器宽度即可-size并添加额外的CSS,当宽度在1120px以下。

原文链接:https://www.f2er.com/html/232864.html

猜你在找的HTML相关文章