论css中如何挣脱overflow:hidden;的限制

前言

这个问题是在处理苏宁平台的官方旗舰店模板遇到的。苏宁限定的页面显示区域宽度为990px。模板可以自定义,但是嵌入的代码被包含在一个div里面。这个div被奇葩的设置了内嵌样式overflow:hidden;但是我们这边的产品和设计师要求和官网一样,要1240的宽度。

问题

如何挣脱overflow:hidden的限制?

分析
  1. overflow的定义与作用?
  2. overflow如何使用?
  3. 关联属性是什么?将产生什么效果?
解答
  1. overflow的定义与作用

    来自 w3school

    overflow的定义和用法
    属性规定当内容溢出元素框时发生的事情。

    说明
    这个属性定义溢出元素内容区的内容会如何处理。如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机制。因此,有可能即使元素框中可以放下所有内容也会出现滚动条。

    属性说明

    属性
    默认值:visible
    继承性:no
    版本:CSS2
    JavaScript 语法:object.style.overflow=”scroll”

    取值说明

    描述
    visible默认值。内容不会被修剪,会呈现在元素框之外。
    hidden内容会被修剪,并且其余内容是不可见的。
    scroll内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
    auto如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
    inherit规定应该从父元素继承 overflow 属性的值。
  2. overflow的关联属性和相关效果
    因为这个问题更重要所以提前来讲一下。

    关联属性 :css 定位


    position
    表示:规定元素的定位类型。这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。更多参考盒子模型
    position的取值和含义

    描述
    absolute生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
    fixed生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
    relative生成相对定位的元素,相对于其正常位置进行定位。因此,”left:20” 会向元素的 LEFT 位置添加 20 像素。
    static默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
    inherit规定应该从父元素继承 position 属性的值。

    1. float
      float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。
      如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄。
      值有:left , right , none(默认) , inherit

    1、 隐藏盒子模型中超出规定区域的部分。
    2、 清除由于浮动导致的高度不一致问题。

  3. overflow的用法(同上)


前两天在处理苏宁平台的旗舰店的模板,苏宁后台模板可以自定义,但是嵌入的html内容是被一个div包着的。

标签给包着的。

示例代码如下:

<div class="template">
<div style="overflow:hidden;">
<!-- 内嵌代码 -->
<div style="width: 1920px; margin: 0 auto;">
    <div style="margin-left: -465px; position: absolute;">
        <table style="width: 1980px;" border="0" cellspacing="0" cellpadding="0">
            <tbody>
                <tr>
                    <td>
                        <!-- 内容区域 -->
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
</div>
<!-- 内嵌代码结束 -->
</div>
</div>

template 的宽度为990px,现在将拓展这个限制。就靠里面那一块。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值