首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >html元素的动态定位

问html元素的动态定位
EN

Stack Overflow用户
提问于 2015-01-07 16:41:30
回答 2查看 547关注 0票数 0

下面提到的是一个示例代码,我正在尝试动态地创建一个选项卡体验。

html:

代码语言:javascript
复制
<ul id="menu">
    <div class="dialog">
        <li>
            <input type="button" value="Tab 1"></input>
            <a href="#" class="close"></a>
        </li></div>
<div class="dialog">
        <li>
            <input type="button" value="Tab 2 - hello world hello world"></input>
            <a href="#" class="close"></a>
        </li>
    </div>
</ul>

css:

代码语言:javascript
复制
.close {
  color: #777;
  font: 14px/100% arial, sans-serif;
  position: absolute;
  right: 5px;
  text-decoration: none;
  text-shadow: 0 1px 0 #fff;
  top: 5px;
}

.close:after {
  content: '✖';
}

.dialog {
  background: #ddd;
  border: 1px solid #ccc;
  border-radius: 5px;
  float: left;
  position: relative;
  width: 205px;
}

ul#menu {
    padding: 0;
}

ul#menu li {
    display: inline;
}

ul#menu li input {
    background-color: black;
    color: white;
    padding: 10px 20px;
    text-decoration: none;
    border-radius: 4px 4px 0 0;
}
ul#menu li input:hover {
    background-color: orange;
}

JQ:

代码语言:javascript
复制
function newTab(){
  $('#tab2').val("hello world hello world hello world");
}

链接:码页

问题:显然,对话框类按钮的宽度是硬编码的,但是我需要动态地调整关闭类锚的位置(在我的示例中是‘X’)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-07 16:54:23

对话框的宽度必须是灵活的,以使关闭框仍然保持在或调整在框增长。

解决方案:将宽度更改为.dialog的最小宽度

​

代码语言:javascript
复制
function newTab(){
  $('#tab2').val("hello world hello world hello world");
}
代码语言:javascript
复制
.close {
  color: #777;
  font: 14px/100% arial, sans-serif;
  position: absolute;
  right: 5px;
  text-decoration: none;
  text-shadow: 0 1px 0 #fff;
  top: 5px;
}

.close:after {
  content: '✖';
}

.dialog {
  background: #ddd;
  border: 1px solid #ccc;
  border-radius: 5px;
  float: left;
  position: relative;
  min-width: 205px;
}

ul#menu {
    padding: 0;
}

ul#menu li {
    display: inline;
}

ul#menu li input {
    background-color: black;
    color: white;
    padding: 10px 20px;
    text-decoration: none;
    border-radius: 4px 4px 0 0;
}
ul#menu li input:hover {
    background-color: orange;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="menu">
    <div class="dialog">
        <li>
            <input type="button" id="tab1" value="Tab 1"></input>
            <a href="#" class="close"></a>
        </li></div>
<div class="dialog">
        <li>
            <input type="button" id="tab2" value="Tab 2"></input>
            <a href="#" class="close"></a>
        </li>
    </div>
</ul>
<input type="button" onclick="newTab()" value="Click"></input>

​

票数 0
EN

Stack Overflow用户

发布于 2015-01-07 16:54:37

你的帖子相当误导人。当我看到“选项卡体验”的时候,我在想的是标签线。回到你的问题上。您的关闭按钮被定义为从您的对话框div的右边5 5px。所以你真的需要改变你的对话视场的宽度。

例如:如果您的div默认为200 if。当你点击按钮时,你应该

在文本替换之前获取按钮的宽度(WidthBeforeChange),在文本替换后获取按钮的宽度(WidthAfterChange),将WidthAfterChange-WidthBeforeChange的差异添加到对话框div的宽度中。

--上面是一个JS解决方案,这里是一个css解决方案--

代码语言:javascript
复制
.dialog {
  background: #ddd;
  border: 1px solid #ccc;
  border-radius: 5px;
  float: left;
  position: relative;
  min-width: 205px;  /*change it from a fixed width to a min width*/
}

/** add this to your code **/
.dialog input[type="button"]{
  margin-right: 100px;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27824216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档