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


Posted in Javascript onDecember 14, 2016

有些时候,在一个网页的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 相关文章推荐
javascript 一个函数对同一元素的多个事件响应
Jul 25 Javascript
ExtJS 入门
Oct 29 Javascript
css配合jquery美化 select
Nov 29 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
jQuery判断checkbox是否选中的3种方法
Aug 12 Javascript
jQuery不使用插件及swf实现无刷新文件上传
Dec 08 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
Aug 05 Javascript
基于Javascript实现二级联动菜单效果
Mar 04 Javascript
原生JS实现匀速图片轮播动画
Oct 18 Javascript
React从react-router路由上做登陆验证控制的方法
May 10 Javascript
关于vue-router的那些事儿
May 23 Javascript
Vue+mui实现图片的本地缓存示例代码
May 24 Javascript
微信小程序 require机制详解及实例代码
Dec 14 #Javascript
js实现获取鼠标当前的位置
Dec 14 #Javascript
详解vue.js组件化开发实践
Dec 14 #Javascript
JavaScript Ajax实现异步通信
Dec 14 #Javascript
微信小程序 配置文件详细介绍
Dec 14 #Javascript
微信小程序 闭包写法详细介绍
Dec 14 #Javascript
微信小程序 wx.uploadFile无法上传解决办法
Dec 14 #Javascript
You might like
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
php修改数组键名的方法示例
2017/04/15 PHP
php实现评论回复删除功能
2017/05/23 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
js 处理URL实用技巧
2010/11/23 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
用js编写留言板
2020/03/17 Javascript
vue 子组件watch监听不到prop的解决
2020/08/09 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
理解python多线程(python多线程简明教程)
2014/06/09 Python
Python isinstance函数介绍
2015/04/14 Python
Python的迭代器和生成器
2015/07/29 Python
Python中方法链的使用方法
2016/02/23 Python
Python对文件操作知识汇总
2016/05/15 Python
Python异常处理操作实例详解
2018/05/10 Python
python自动查询12306余票并发送邮箱提醒脚本
2018/05/21 Python
python实现周期方波信号频谱图
2018/07/21 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
Python中tkinter的用户登录管理的实现
2021/04/22 Python
Promise面试题详解之控制并发
2021/05/14 面试题
volatile保证可见性及重排序方法
2022/08/05 Java/Android