怎么用js改变html里面的图片大小,网页中图片属性固定宽度,如何用js改变大小...

后台上传图片后,都有一个图片属性,会指定图片的宽和高,如果图片固定了宽度和高度,PC端用max-width可以控制最大宽度,高度自动缩放。但是手机端就没法自动缩放,可以使用js来改变图片的style,通过100%比例,当然也可以设置px固定的高度宽度。

下面这些代码是摘自网上,测试了下还是比较好使的,主要也是为了解决网站电脑端和手机端共用一套数据时,造成的图片变形问题,由于后台上传图片时会自动设置图片的宽高,pc端倒没什么影响,可是手机端就会导致变形,很是影响视觉效果。

当然也可以在上传的时候手动去掉图片宽和高的属性代码,但是这样操作比较麻烦,而且还会造成图片在后台编辑器中很大很大,影响编辑。

下面这些js代码,配合css代码,即可实现手机端图片正常显示效果。

html默认样式:

CSS:

.news_infos img { max-width: 650px;height:auto; }

js:

var aImg=document.getElementById("newsp").getElementsByTagName('img');

for(var i=0;i

aImg[i].style.height="100%";

aImg[i].style.width="100%";

}

或者 方法二:

var aImg=document.getElementById("newsp").getElementsByTagName('img');

for(var i=0;i

aImg[i].style.height="auto";

aImg[i].style.width="auto";

}

html更改后:

100%这个方案不是很完美,如果图片上传的大小没有超过650,那么PC端图片会被放大。还有一种解决方案就是,编辑后台内容的时候,将图片属性后面的width,height值都删掉,让css来控制就行了。同样用max-width来控制图片大小,小图<650px,图片不会被更改,>650px,图片宽度就是650px。,那么手机端就用100%来表示。

方法三 CSS:

.news_infos img { max-width: 650px;height:auto; }

@media only screen and (max-width: 480px) {

.news_infos img { width:100%; }

}

这个的不好的地方就在于,每次编辑图片属性,都得删除后面的width,比较繁琐。

以上方法,都可以实现,但是100%,和设置宽度这两种方法都不完美, 如果以前图多,已经固定了宽度,建议使用方法二

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
锁定表头及固定左边列,原生JS原创代码 需要注意的问题: 1.表格的宽度以及表格每一列的宽度需要固定(特殊情况除外:当表格列数少并且表格总宽度明显小于表格父容器的宽度时,也就是表格列不存在自动换行的问题) 2.表格父容器尺寸大小改变时,需要调用 setBoxSize 方法,目的是判断父容器是否出现滚动条 1.1 修正了对IE6、IE7的兼容问题 1.2 修正了固定行、列的样式问题 1.3 IE6/IE7浏览器 不启用该功能 1.4 增加了拆分线, 修正了重复生成锁定行列的问题以及生成错位的问题, 修正了行、列事件无法复制的问题, 增加了IE6/IE7/IE8 启用设置参数(ieLowVersionEnabled: true|false) ,默认不启用, 注:IE6/7/8锁定表头 由于兼容性问题,有些情况下会有一些错位的问题 1.5 增加了 显示/隐藏功能,修正了非IE浏览器下列宽错位问题 1.6 修正了当有合并单元格时,锁定单元格错位的问题,修正了表格行数较多时的性能问题 1.7 表格单元格可以不指定宽度(锁定时,取实际的单元格宽度),当单元格的左右两边的borderWidth不一样时,会有一些错位 若单元格宽度固定的,可以在第3个参数(config)指定 isFixedSize:true 修正表头列未锁定的Bug 1.8 修正表格含有thead时的样式丢失问题,以及行数设置问题,修正thead/tbody行归属问题 1.9 移除tb_top_left的底部边框线 修正表格cellpadding/cellspacing的设置问题 修复Firefox下的padding导致的错位问题 修复thead复制没有底部分割线的问题 修复thead复制时无背景色的问题 增加复选框同步功能(如果是JS代码设置复选框选,需要调用 .setCheckBoxSync()方法) .setCheckBoxSync 方法参数说明:4种参数 1) 复选框控件(html object)数组 2) 复选框控件(html object) 3) 复选框控件ID (string) 4) 空参数(尽量不用空参数) 增加复选框选择:全选、取消、反选,需要调用 .setChecked(oper, name) oper: 1-全选,2-取消,3-反选; name: checkbox的 name属性名称 解决启用bootstrap.css之后,表格列宽获取的问题,目前采用的方法是屏蔽,虽解决了问题,但不明所以,留待后续彻解。临时解决方案:在第3个参数(config)指定 isBootstrap:true,或者也可以不指定,js会自动检测页面上有没有启用文件名为bootstrp的css(如果启用bootstrap.css,但文件名不是bootstrap,那请指定isBootstrap参数)。 增加colStartRowIndex参数,当表格顶部的行有合并所有列的情况下,列宽计算从指定的行开始 2.0 增加 window.onresize事件监听(当触发 window.onresize时自动重新固定表头) 增加左边固定位置鼠标滚轮事件
### 回答1: 可以使用 Bootstrap Table 的扩展插件 `bootstrap-table-sticky-header` 来实现表头固定,使用 `bootstrap-table-resizable` 插件来实现列宽可拖动改变宽度大小。 首先,需要在页面引入 `bootstrap-table-sticky-header.css` 和 `bootstrap-table-sticky-header.js` 插件文件以及 `bootstrap-table-resizable.js` 插件文件。例如: ```html <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table-sticky-header/dist/bootstrap-table-sticky-header.css"> <script src="https://cdn.jsdelivr.net/npm/bootstrap-table-sticky-header/dist/bootstrap-table-sticky-header.js"></script> <script src="https://rawgit.com/wenzhixin/bootstrap-table-resizable/master/src/bootstrap-table-resizable.js"></script> ``` 然后,在表格初始化时,需要将 `stickyHeader` 和 `resizable` 选项设置为 `true`,如下所示: ```javascript $('#table').bootstrapTable({ stickyHeader: true, // 开启表头固定 resizable: true, // 开启列宽可拖动改变 columns: [ // 列配置 ], data: [ // 数据 ] }); ``` 这样就可以在表格实现表头固定和列宽可拖动改变的效果了。 ### 回答2: Bootstrap table 是一款基于Bootstrap框架的表格插件,可以用于展示数据和操作表格。要实现表头固定和列宽可拖动改变宽度大小,可以使用Bootstras Table的一些功能和插件。 首先,为了实现表头固定,可以使用Bootstrap Table的fixedHeader插件。这个插件可以将表格的表头固定在顶部,即使表格有滚动条也能保持表头可见。可以通过添加fixedHeader: true的属性来启用这个功能。 其次,为了实现列宽可拖动改变宽度大小,可以使用Resizable插件。这个插件可以让列的宽度可调整,用户可以拖动列的边界改变宽度大小。可以通过添加resizable: true的属性来启用这个功能。 示例代码如下: ```html <table id="myTable" data-resizable="true" data-fixed-header="true"> <thead> <tr> <th data-field="id">ID</th> <th data-field="name">Name</th> <th data-field="age">Age</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>John</td> <td>25</td> </tr> <tr> <td>2</td> <td>Jane</td> <td>30</td> </tr> </tbody> </table> <script> $(document).ready(function() { $('#myTable').bootstrapTable({ fixedHeader: true, resizable: true }); }); </script> ``` 上述示例代码,我们创建了一个带有ID、Name和Age三列的表格,并启用了表头固定和列宽可调整功能。用户可以拖动列边界来改变列的宽度大小,而表头会一直保持在表格的顶部可见。 希望这个回答对您有帮助! ### 回答3: Bootstrap table是一种用于创建漂亮且响应式数据表格的开源前端框架。要实现表头固定和列宽可拖动改变宽度大小的功能,可以使用Bootstrap table的相关插件。以下是实现的步骤: 1. 表头固定:使用Bootstrap table的fixedHeader插件。这个插件可以使表格的表头在滚动时固定在页面顶部。只需要在表格初始化时启用该插件即可。 2. 列宽可拖动改变大小:使用Bootstrap table的resizable插件。这个插件可以让列的宽度可以通过拖动改变。首先,需要在表格初始化时启用该插件。然后,在表头的每个列添加一个可拖动的区域,例如使用col-resizable类。最后,使用CSS样式指定这个可拖动区域的样式和大小。 综上所述,要实现Bootstrap table的表头固定和列宽可拖动改变大小的功能,可以使用fixedHeader和resizable两个插件。这些插件能够使表格更加灵活和易于使用,并提供更好的用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值