动态改变select元素的option时宽度发生变化解决方法

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script type="text/javascript">
        function addOption() {

            var obj = document.getElementById('lst1');
            var opn = document.createElement("OPTION");
            //obj.appendChild(opn);//先增加子元素
            opn.innerText = 11;
            opn.value = 11;
            //obj.appendChild(opn);//后增加子元素
        }
    </script>
</head>
<body>
    <div>
        代码不应该是先设置属性在追加节点,而应该是先追加节点再设置属性。
        原因是DOM要先增加节点然后设置属性,否则会有reflow发生。
    </div>
    <table style="width: 500px;">
        <tbody>
            <tr>
                <td style="width: 100%; border: solid 1px;">
                    <select id="lst1" style="width: 95%;">
                        <option>1</option>
                    </select>
                </td>
            </tr>
        </tbody>
    </table>
    <input type="button" value="show" οnclick="addOption()" />
</body>
</html>

要修改`select`下拉框中`option`元素宽度,你可以通过CSS来实现。通常情况下,`select`元素宽度是由它的父容器或者`select`本身以及其内部的`option`元素共同决定的。如果你想要单独修改`option`元素宽度,这在标准的HTML和CSS中是不可能的,因为`option`元素并不支持单独的样式设置。但是,你可以通过一些技巧或者JavaScript库(如Select2或Chosen等)来实现这一需求,这些库允许自定义下拉框的外观和行为。 如果你使用了类似Select2这样的库,你可以通过它们提供的CSS类来控制`select`下拉框的宽度。例如,使用Select2,你可能需要这样做: ```css .select2-container .select2-selection { width: 200px; /* 设置你想要的宽度 */ } ``` 如果你没有使用这些库,而是想通过纯CSS改变`select`元素宽度,你可以这样做: ```css select { width: 200px; /* 设置你想要的宽度 */ } ``` 请注意,这样做会影响整个`select`元素宽度,而不是单独的`option`元素。如果你确实需要调整`option`元素宽度,并且不介意使用JavaScript,可以这样做: ```javascript // 通过JavaScript获取select元素 var select = document.querySelector('select'); // 创建一个新的option元素并设置宽度 var option = document.createElement('option'); option.style.width = '200px'; // 设置你想要的宽度 // 将option添加到selectselect.appendChild(option); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值