CSS之float vs position:absolute

补充:ul 应该设置下 list-style: none;



题外话:看了张鑫旭的视频,这家伙把简单的css玩出了新花样,绝对大神级的存在。膜拜下先~

float的作用前面一章已经说过了,但没考虑过的是 position:absolute 作用与float极其类似。

二者都是将自身浮空(垂直于屏幕) -- 其实是将其容器高度塌陷。

不同点在于:float会改变位置,但 position:absolute 则会保存其原有位置!!!

利用 position:absolute 的这个特性,我们可以更好的实现一个搜索框的功能:

代码如下,

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>POSITION:ABSOLUTE vs FLOAT</title>

    <style>
        ul,
        li,
        input,
        button {
            padding: 0;
            margin: 0;
        }

        .box,
        section {
            width: 254px;
            height: 32px;
            border: 1px solid #e6e8e9;
            box-sizing: content-box;
            overflow: hidden;
        }

        input {
            width: 200px;
            height: 30px;
            border: 1px solid #009527;
            box-sizing: content-box;
            /*padding-left: 5px;*/
            text-indent: 5px;
            text-overflow: ellipsis;
        }

        button {
            width: 50px;
            height: 30px;
            border: 1px solid #009527;
            box-sizing: content-box;
        }
        ul{
            color: #333;
            border: 1px solid #999;
            margin-top: -1px;
            margin-left: 1px;
            /*transition: all 1.25s;*/
        }
        li{
            width: 252px;
            background-color: #d5d7d9;
            text-indent: 10px;
        }
    </style>
</head>

<body>
    <h3>使用absolute!!!</h3>
    <div class="box">
        <section>
            <input type="text" name="key" placeholder="Anything you wanna know..."><button type="button">Go!</button>
        </section>
        <div>
            <ul>
                <li>AAA</li>
                <li>BBB</li>
                <li>CCC</li>
                <li>DDD</li>
                <li>EEE</li>
            </ul>
        </div>
    </div>
</body>
<script>
    var count=0;
    var btn = document.getElementsByTagName(‘button‘)[0];
    btn.onclick = function () {
        count++;
        var ul = document.getElementsByTagName(‘ul‘)[0];
        if(count%2)
            ul.style.position = ‘absolute‘;
        else
            ul.style.position = ‘static‘;
    }
</script>

</html>

其效果如下:

时间: 2024-10-10 13:36:06

CSS之float vs position:absolute的相关文章

float和position:absolute脱离文本流的区别

float和position:absolute脱离文本流的区别原创 paediatrician 最后发布于2016-09-19 10:43:05 阅读数 5375 收藏展开 文档流:将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,块状元素独占一行,内联元素不独占一行: CSS中脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离文档流的元素不存在而进行定位. 需要注意的是,使用float脱离文档流时,其他盒子会无视这个元素,但其他盒子内的文本依然会为这

Day50:CSS属性(float、position)

一.float属性 1.基本属性 先来了解一下block元素和inline元素在文档流中的排列方式. block元素通常被现实为独立的一块,独占一行,多个block元素会各自新起一行,默认block元素宽度自动填满其父元素宽度.block元素可以设置width.height.margin.padding属性: inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化.inline元素设置width.height属性无效 常见的块级

我所整理的float, inline-block还有position:absolute

这篇主要写了一下几个知识点: 浮动和inline-block的概念和选择 浮动和position:absolute对于脱离文档流的区别 这篇文章参考了一下几个链接: https://www.zhihu.com/question/24529373/answer/29135021 http://www.w3cplus.com/css/inline-blocks.html 感谢你们的无私分享以及钻研的精神. 浮动最早是用来实现文字环绕图片用的,而不是像现在很多地方用来砌砖头用. inline-bloc

[译] 关于CSS中的float和position

原文 http://learn.shayhowe.com/advanced-html-css/detailed-css-positioning 当构建页面排版时,有不同的方法可以使用.使用哪一种方法取决于具体页面的排版要求,在不同的情况下,某些方法可能好过于其他的方法. 比如,可以使用若干个浮动元素来构建一个整洁简洁的页面排版.或者,如果需要更复杂的排版要求,可以考略使用其他方法,比如使用相对定位和绝对定位. 在这篇文章中,我们首先要讨论元素浮动:然后,我们要讨论如何使用x,y和z轴控制元素的位

css中float属性和position

css中float属性: float 属性定义元素在哪个方向浮动.以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动.浮动元素会生成一个块级框,而不论它本身是何种元素. 如果浮动非替换元素,则要指定一个明确的宽度:否则,它们会尽可能地窄. 注释:假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止. 默认值: none 继承性: no 版本: CSS1 JavaScript 语法: object.styl

CSS 中,用 float 和 position 的区别是什么?

呃,其实这个命题有误,只有position才是定位,float不能说是定位,不过你可以说这两种布局方式有什么不同.float和position这两者并没有孰好孰不好的问题,两者按需使用,各得所需的效果.float从字面上的意思就是浮动,这种在印刷排版之类中可能解释的更加贴切.float能让元素从文档流中抽出,它并不占文档流的空间,典型的就是图文混排中文字环绕图片的效果了.并且float这也是目前使用最多的网页布局方式.不过需要注意的是清除浮动是你可能需要注意的地方.并且如果你要考虑到古老的IE6

CSS 盒子模型及 float 和 position

## CSS和模型 ##CSS盒模型本质上是一个盒子,封装周围的 HTML 元素,包括 外边距(marign),边框(border),填充(padding),内容物(content) 盒子模型的类型:W3C 标准和模型和 IE 盒模型(怪异盒模型) W3C 标准盒模型:属性 width 和 height 只包含 content,不包括 border 和 padding IE 盒模型:属性 width 和 height 包含 border 和 padding,指的是 content + paddi

CSS 浮动(float)与定位(position)

一.浮动 1.三个属性:left.right.none. 2.特点:容易造成父项塌陷,故在父项需要清除浮动 3.父项塌陷现象 4.父项塌陷解决方案(建议使用):清除浮动 .parent:after{ content:""; display: block; clear:both; } <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&

CSS position:absolute浅析

一.绝对定位的特征 绝对定位有着与浮动一样的特性,即包裹性和破坏性. 就破坏性而言,浮动仅仅破坏了元素的高度,保留了元素的宽度:而绝对定位的元素高度和宽度都没有了. 请看下面代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>绝对定位的特征</title> 6 <style> 7 .box1,.box2,.b