原生JS获取元素集合的子元素宽度实例

发布时间 - 2026-01-10 21:49:38    点击率:

有些时候,在一个网页的ul li中,存在左右两个部分的内容,但是右边元素内容又是不固定,左边元素相对应的不能用固定宽度,所有需要我们动态的获取右边元素宽度,来赋值给左边元素的marginRight值。

HTML结构:

<ul class="itemCon">
  <li class="item">
    <div class="leftMess">
      <div class="leftCon">
        <span>头像</span>
        <p>名字名字名字名字名字名字名字名字名字名字名字名字名字名字名字名字</p>
      </div>
    </div>
    <div class="rightMess">
      <span>工具1</span>
      <span>工具2</span>
      <span>工具3</span>
    </div>
  </li>
  <li class="item">
    <div class="leftMess">
      <div class="leftCon">
        <span>头像</span>
        <p>名字名字名字名字名字名字名字名字名字名字名字名字名字名字名字名字</p>
      </div>
    </div>
    <div class="rightMess">
      <span>工具2</span>
      <span>工具3</span>
    </div>
  </li>
  <li class="item" id="test">
    <div class="leftMess">
      <div class="leftCon">
        <span>头像</span>
        <p>名字名字名字名字名字名字名字名字名字名字名字名字名字名字名字名字</p>
      </div>
    </div>
    <div class="rightMess">
      <span>工具3</span>
    </div>
  </li>
</ul>

配上CSS:

html,body{padding:0;margin:0}
ul,li{list-style:none;padding:0;margin:0}
p{margin:0;padding:0}
.itemCon{width:450px;height:auto; margin:100px auto; background:#ccc; overflow:hidden}
.item{width:100%; float:left;height:60px;border-bottom:solid 1px #f00; position:relative}
.leftMess{ height:60px;}
.leftCon{ float:left; height:60px; overflow:hidden;width:100%}
.leftMess span{ display:inline-block;width:50px;height:50px; border-radius:50%; background:#f00; text-align:center; line-height:50px; margin:5px; float:left}
.leftMess p{ margin-left:60px}
.rightMess{width:auto;height:60px; position:absolute;right:0;top:0}
.rightMess span{width:50px; height:50px; line-height:50px; text-align:center; margin:5px; float:left; background:#f00}

最后JS代码:

<script type="text/javascript">
  var divs = document.getElementsByClassName('item');
  for (var i = 0; i < divs.length; i++) {
    var lastW = divs[i].children[1].offsetWidth;
    divs[i].children[0].style.marginRight=lastW+"px"
  }
</script>

最终效果图:

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js获取元素宽度  # javascript获取隐藏元素(display:none)的高度和宽度的方法  # js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法  # js获取Html元素的实际宽度高度的方法  # js获取页面及个元素高度、宽度的代码  # jquery如何获取元素的滚动条高度等实现代码  # jQuery获取页面及个元素高度、宽度的总结——超实用  # 一个JavaScript获取元素当前高度的实例  # 无法获取隐藏元素宽度和高度的解决方案  # 又是  # 不能用  # 配上  # 相对应  # body  # css  # html 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  如何快速选择适合个人网站的云服务器配置?  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  如何快速生成可下载的建站源码工具?  如何在腾讯云免费申请建站?  使用Dockerfile构建java web环境  网站制作价目表怎么做,珍爱网婚介费用多少?  简单实现Android文件上传  Laravel观察者模式如何使用_Laravel Model Observer配置  如何选择PHP开源工具快速搭建网站?  如何破解联通资金短缺导致的基站建设难题?  怎么用AI帮你设计一套个性化的手机App图标?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何用狗爹虚拟主机快速搭建网站?  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  如何基于云服务器快速搭建网站及云盘系统?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  奇安信“盘古石”团队突破 iOS 26.1 提权  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  ,怎么在广州志愿者网站注册?  Linux系统运维自动化项目教程_Ansible批量管理实战  如何在万网利用已有域名快速建站?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  HTML 中动态设置元素 name 属性的正确语法详解  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  如何在阿里云虚拟服务器快速搭建网站?  如何获取PHP WAP自助建站系统源码?  详解jQuery停止动画——stop()方法的使用  zabbix利用python脚本发送报警邮件的方法  深圳网站制作的公司有哪些,dido官方网站?  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  如何正确选择百度移动适配建站域名?  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  如何在宝塔面板中创建新站点?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  iOS发送验证码倒计时应用  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址