CSS float 定位和缩放问题

简介:

今天调试一个看起来很简单的前端问题,但却花了太多的时间,示例代码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
</head>
<body>
    <div>
        <div style="width:10%; float:left; height:200px;background-color:aqua"></div>
        <div style="background-color:antiquewhite;float:right; width:90%;">
            <table style="width:100%">
                <thead>
                    <tr>
                        <td style="width:10%; text-align: center;"><b>状态</b></td>
                        <td style="width:50%; text-align: center;"><b>标题</b></td>
                        <td style="width:10%; text-align: center;"><b>浏览量</b></td>
                        <td style="width:20%; text-align: center;"><b>发布时间</b></td>
                        <td style="width:10%; text-align: center;">&nbsp;<b>操作</b></td>
                    </tr>
                </thead>
                <tbody>
                    <tr bgcolor="#ffffff">
                        <td align="center">
                            <span>已发布</span>
                        </td>
                        <td>
                            <a href="http://www.cnblogs.com/xishuai/" target="_blank" class="big">田园里的蟋蟀</a>
                        </td>
                        <td style="text-align: center;">0</td>
                        <td style="text-align: center;">2016-03-17 15:26</td>
                        <td style="text-align: center;">修改 删除</td>
                    </tr>
                    <tr bgcolor="#ffffff">
                        <td align="center">
                            <span>已发布</span>
                        </td>
                        <td>
                            <a href="http://www.cnblogs.com/xishuai/" target="_blank" class="big">田园里的蟋蟀</a>
                        </td>
                        <td style="text-align: center;">0</td>
                        <td style="text-align: center;">2016-03-17 15:26</td>
                        <td style="text-align: center;">修改 删除</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
</body>
</html>

效果:

上面是我们一般设计后台使用的代码和样式,左边是菜单区域,右边是内容操作区域,但左边菜单区域因为分辨率或窗口大小进行了缩放,也就是菜单变形了,现在要求左边菜单固定宽度不拉伸,右边内容操作区域可以进行缩放,所以,我们改了下面的代码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
</head>
<body>
    <div>
        <div style="width:144px; float:left; height:200px;background-color:aqua"></div>
        <div style="background-color:antiquewhite;">
            <table style="width:100%">
                <thead>
                    <tr>
                        <td style="width:10%; text-align: center;"><b>状态</b></td>
                        <td style="width:50%; text-align: center;"><b>标题</b></td>
                        <td style="width:10%; text-align: center;"><b>浏览量</b></td>
                        <td style="width:20%; text-align: center;"><b>发布时间</b></td>
                        <td style="width:10%; text-align: center;">&nbsp;<b>操作</b></td>
                    </tr>
                </thead>
                <tbody>
                    <tr bgcolor="#ffffff">
                        <td align="center">
                            <span>已发布</span>
                        </td>
                        <td>
                            <a href="http://www.cnblogs.com/xishuai/" target="_blank" class="big">田园里的蟋蟀</a>
                        </td>
                        <td style="text-align: center;">0</td>
                        <td style="text-align: center;">2016-03-17 15:26</td>
                        <td style="text-align: center;">修改 删除</td>
                    </tr>
                    <tr bgcolor="#ffffff">
                        <td align="center">
                            <span>已发布</span>
                        </td>
                        <td>
                            <a href="http://www.cnblogs.com/xishuai/" target="_blank" class="big">田园里的蟋蟀</a>
                        </td>
                        <td style="text-align: center;">0</td>
                        <td style="text-align: center;">2016-03-17 15:26</td>
                        <td style="text-align: center;">修改 删除</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
</body>
</html>

效果:

这个我花了很多时间进行调整,不是表格宽度超过内容区域,就是宽度不够,某个界面下调整了,但伸缩下界面,宽度又乱了,后来无意间调整了一下样式,就可以了,代码如下:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
</head>
<body>
    <div>
        <div style="width:144px; float:left; height:200px;background-color:aqua"></div>
        <div style="background-color:antiquewhite; margin-left:144px">
            <table style="width:100%">
                <thead>
                    <tr>
                        <td style="width:10%; text-align: center;"><b>状态</b></td>
                        <td style="width:50%; text-align: center;"><b>标题</b></td>
                        <td style="width:10%; text-align: center;"><b>浏览量</b></td>
                        <td style="width:20%; text-align: center;"><b>发布时间</b></td>
                        <td style="width:10%; text-align: center;">&nbsp;<b>操作</b></td>
                    </tr>
                </thead>
                <tbody>
                    <tr bgcolor="#ffffff">
                        <td align="center">
                            <span>已发布</span>
                        </td>
                        <td>
                            <a href="http://www.cnblogs.com/xishuai/" target="_blank" class="big">田园里的蟋蟀</a>
                        </td>
                        <td style="text-align: center;">0</td>
                        <td style="text-align: center;">2016-03-17 15:26</td>
                        <td style="text-align: center;">修改 删除</td>
                    </tr>
                    <tr bgcolor="#ffffff">
                        <td align="center">
                            <span>已发布</span>
                        </td>
                        <td>
                            <a href="http://www.cnblogs.com/xishuai/" target="_blank" class="big">田园里的蟋蟀</a>
                        </td>
                        <td style="text-align: center;">0</td>
                        <td style="text-align: center;">2016-03-17 15:26</td>
                        <td style="text-align: center;">修改 删除</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
</body>
</html>

主要改进是在右侧内容区域增加margin-left:144px样式,并且宽度要和菜单区域的宽度一致,缩放效果:






本文转自田园里的蟋蟀博客园博客,原文链接:http://www.cnblogs.com/xishuai/p/css-float-margin-left.html,如需转载请自行联系原作者

相关文章
|
11月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
798 0
|
自然语言处理 前端开发 JavaScript
Playwright系列课(2) | 元素定位四大法宝:CSS/文本/XPath/语义化定位实战指南
本文是Playwright系列第二课,详解元素定位四大核心技术:CSS选择器、文本定位、XPath和语义化定位,结合实战演示各方法应用场景。重点解析Playwright智能定位器(Locator)的独特优势——自动等待与重试机制,通过预检元素可操作性(可见/可点击)有效规避网络延迟导致的脚本失效,显著提升自动化测试稳定性。
|
前端开发
|
前端开发 容器
最新CSS3定位元素
【8月更文挑战第28天】
263 5
|
前端开发 容器
css中使用定位实现吸顶效果
css中使用定位实现吸顶效果
392 2
|
前端开发
HTML+CSS基础知识(5)相对定位、绝对定位、固定定位
这篇文章介绍了HTML和CSS中的三种定位方式:相对定位、绝对定位和固定定位,并通过代码示例展示了它们如何影响元素在页面上的布局和位置。
HTML+CSS基础知识(5)相对定位、绝对定位、固定定位
CSS_定位_网页布局总结_元素的显示与隐藏
CSS_定位_网页布局总结_元素的显示与隐藏
190 0
|
前端开发 容器
解锁CSS定位奥秘,从迷茫到精通,让你的网页布局“稳如老狗”,引领前端新潮流!
【8月更文挑战第23天】本文深入探讨了Web前端开发中CSS定位的三大基石:相对定位、绝对定位与固定定位。通过具体示例,展示了各种定位方式的特点及应用场景。相对定位可在不影响布局的情况下微调元素位置;绝对定位使元素完全脱离文档流,适用于精确控制位置的需求;固定定位则确保元素始终固定于浏览器窗口特定位置,不受页面滚动影响。这些技巧对于实现复杂网页布局至关重要。
440 0
|
前端开发 UED 开发者
神秘的 CSS 属性 “position: sticky” 究竟有何魔力?带你彻底理解粘性定位的奇妙世界!
【8月更文挑战第20天】在前端开发中,CSS的粘性定位(`position: sticky`)是一种结合了相对与固定定位优点的强大工具。它使元素能在特定条件下相对定位,达到指定阈值时转为固定定位,非常适合制作“吸顶”导航栏等。例如,设置`position: sticky; top: 0;`能让导航栏滚动至顶部时固定显示。此特性不仅限于导航栏,还可应用于侧边栏等,增强布局灵活性与用户体验。尽管如此,仍需注意不同浏览器间的兼容性和可能的布局冲突。
843 0
|
前端开发 索引 Python
技术心得:xpath、CSS定位方法
技术心得:xpath、CSS定位方法
570 0

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    655
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    505
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    514
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    328
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    615
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    798
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1579
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    367
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1298
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    628