CSS定位

定位

是布局中的重要属性,一般用于盖压效果与位置相关效果。

position

给元素设置整体定位,必须同时存在position属性和偏移量属性。

属性值说明
relative相对定位
absolute绝对定位
fixed固定定位

偏移量属性

定位的元素,在水平或垂直方向需要偏移的距离。

  • 水平:left、right
  • 垂直:top、bottom

relstive(相对定位)

参考这个元素原始应该加载的位置。
相对定位没有脱离原始状态(标准流,浮动),它不会让出原来占有的位置,显示效果上,形影分离。

注意

  • 偏移量区分正负(正数便宜方向和属性名相反,负数则反之)
  • 水平和垂直方向上只能设置一个属性,若同时存在,则水平上以left为准,垂直上以top为准
  • 相对定位参考自身位置,+left=-right,+top=-bottom

实际应用:

  • 相对定位比较稳定,可以把相对定位作为绝对定位的参考元素
  • 可以在占有原始位置的情况下,对加载效果区进行位置、文字的微调

案例:

	/*实现导航栏鼠标移上后上方出现一个方框*/
	*{
           margin: 0;
           padding: 0;
       }
       .nav{
           height: 50px;
           width: 1080px;
           background: #9acfea;
           margin: 100px auto;
       }
       .nav li{
           list-style: none;
           float: left;
           width: 216px;
           height: 50px;
       }
       .nav li a{
           text-decoration: none;
           display: block;
           height: 50px;
           text-align: center;
           line-height: 50px;
           border-right: 2px solid #fff;
           color: #fff;
       }
       .nav li a:hover{
           position: relative;
           top: -4px;
           border-top: 4px solid #5bc0de;
           background: #2aabd2;
       }

		<ul class="nav">
            <li><a href="#">首页</a></li>
            <li><a href="#">产品</a></li>
            <li><a href="#">服务</a></li>
            <li><a href="#">案例</a></li>
            <li><a href="#">联系</a></li>
        </ul>

在这里插入图片描述

absolute(绝对定位)

参考距离最近的有定位的祖先元素,若没有则参考body,必须搭配偏移量才能使用
绝对定位脱离了标准流,让出原始位置,可设置宽高、随时定义位置,不设置高度只能被撑开
注意:

  • 参考元素不固定,不同的参考元素和偏移值会有不同的表现效果
  • 和相对定位不同,四个方向偏移量不再有关系,无法等价互换

参考点:

  • 有top参与:参考点就是body或盒子的左上或者右上顶点
  • 有bottom参与:参考点就是body或者盒子的左下或者右下顶点

实际工作不会以body作为参考元素

祖先级参考元素:

  • 祖先级有定位属性:寻找最近含有定位属性的祖先元素
  • 祖先元素设置了相对、绝对、固定定位:都可以当作子元素绝对定位的参考元素,一般使用子绝父相

祖先元素参考点:
如果绝对定位参考元素是祖先级元素,参考点就是祖先盒子border的四个顶点,组合方式决定了参考点,绝对定位之关系子盒子和父盒子之间的距离,忽略padding区域。

偏移属性值参考点对比点
left、top祖先元素的左上角(内容区域+padding)盒子自身左上角(包含margin)
left、bottom祖先元素的左下角(内容区域+padding)盒子自身左下角(包含margin)
right、top祖先元素的右上角(内容区域+padding)盒子自身右上角(包含margin)
right、bottom祖先元素的右下角(内容区域+padding)盒子自身右下角(包含margin)

案例:

	 /* 如果box1、2、3都没设置position那么就以body为参考元素
        */
        .box1 {
            width: 500px;
            height: 500px;
            border: 10px solid red;
            margin: 100px;
            position: relative;  /* 只要有我在,上边设置了position也没用,也要以我为参考元素 */
        }
        .box2 {
            width: 400px;
            height: 400px;
            border: 10px solid green;
            margin: 40px;
            position: absolute;  /* 只要有我在,上边设置了position也没用,也要以我为参考元素 */
        }
        .box3 {
            width: 300px;
            height: 300px;
            border: 10px solid blue;
            margin: 40px;
            position: fixed;  /* 只要有我在,上边设置了position也没用,也要以我为参考元素 */
        }
        .me {
            width: 50px;
            height: 50px;
            border: 10px solid yellow;
            margin: 10px;
            background: #cccccc;
            position: absolute;  /* 设置绝对定位和偏移量 */
            top: 0;
            left: 0;
        }
        
        <div class="box1">
		    <div class="box2">
		        <div class="box3">
		            <div class="me"></div>
		        </div>
		    </div>
		</div>

fixed(固定定位)

参考元素只能根据浏览器窗口四个顶点,位置根据偏移量决定,不随屏幕滚动
脱离标准流,可设置宽高、位置,参考元素是浏览器窗口,始终显示在窗口固定位置

 .box {
            width: 300px;
            height: 300px;
            margin: 20px;
            background: #cccccc;
        }
        .txt{
            /* 设置固定定位和偏移量 */
            position: fixed;
            right: 20px;
            bottom: 20px;
            border: 2px solid #9acfea ;
            background: #2aabd2;
            width: 100px;
            height: 100px;
            line-height: 100px;
            text-align: center;
        }
        
        <div class="txt">我是固定的</div>
		<div class="box"></div>
		<div class="box"></div>
		<div class="box"></div>
		<div class="box"></div>

定位属性的应用:

CSS书写顺序(推荐):结构(display、宽高、浮动、定位等)>盒模型属性>背景属性>文字属性

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用原始的HTMLCSS和JS实现业务需求时,可以通过CSS给每一行的删除按钮添加点击事件。具体实现步骤如下: 1. 首先,使用循环渲染的方式生成HTML内容,其中包含了删除按钮的相关代码。例如,可以使用以下代码循环渲染生成HTML内容: ```html <div> <div class="gf-form btn-update-div-${this.panel.id}" value="${rowIndex}"> <button class="btn btn-danger btn-small"> <i class="fa fa-remove"></i> </button> </div> </div> ``` 2. 然后,通过CSS选择器找到这些删除按钮,并为其添加点击事件。可以使用类选择器或其他合适的选择器来选择需要添加点击事件的按钮。例如,可以使用以下样式选择器来选择按钮: ```css .btn.btn-danger.btn-small { /* 添加样式 */ } ``` 3. 最后,在点击事件的处理逻辑中,可以编写相应的CSS样式或执行其他操作。需要注意的是,CSS本身并没有提供处理点击事件的官方方式,但可以使用一些巧妙的技巧来使用纯CSS来“检测”点击事件,而不需要任何JavaScript代码。例如,可以使用伪类`:checked`和`label`元素来模拟点击事件。具体的技巧可以参考相关教程或文档。 总结起来,添加CSS按钮点击事件的步骤为:通过循环渲染生成HTML内容,使用CSS选择器找到按钮并添加点击事件,编写点击事件的处理逻辑。在处理点击事件的过程中,可以借助一些CSS技巧来模拟点击事件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [通过css循环添加点击事件](https://blog.csdn.net/weixin_45454281/article/details/126782274)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [click事件修改css_CSS Click事件](https://blog.csdn.net/culiao9310/article/details/108865316)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值