Div改变高度,当用户点击内容JS
Div change height when user click content JS
我有div元素上升高度的问题。要查看该问题,您必须插入新元素"legal case box"。然后点击右上方div/左上方div。你可以输入一个字母,然后删除它(或者只是设置焦点并删除它)->你可以看到div元素的上升。我不明白为什么会这样。对不起,我的英语不好。谢谢!
我还注意到,如果没有注释innerDiv1.setAttribute("data-text", "Full Name of the Case");
,它会发生
Safari浏览器出现问题
[contentEditable=true]:empty:not(:focus):before {
content:attr(data-text)
}
.boxed {
margin: 5px;
border: 2px solid black;
max-width: calc(100% - 10px);
}
.inline {
display: inline-block;
vertical-align: middle;
max-width: calc(100% - 10px);
}
.divTable {
display: table;
border-collapse: separate;
border-spacing: 5px;
}
.divRow {
display:table-row;
}
.divCell {
display:table-cell;
border: 2px solid black;
}
<script>
function insert(elem) {
document.getElementById("mainDiv").focus();
var sel = window.getSelection();
var range = sel.getRangeAt(0);
range.insertNode(elem);
}
function legalCaseBox() {
var innerDiv1 = document.createElement('div');
innerDiv1.contentEditable = 'true';
innerDiv1.style.minWidth = '50pt';
innerDiv1.style.minHeight = '50pt';
innerDiv1.classList.add('divCell');
//innerDiv1.setAttribute("data-text", "Full Name of the Case");
var innerDiv2 = document.createElement('div');
innerDiv2.contentEditable = 'true';
innerDiv2.style.minWidth = '50pt';
innerDiv2.style.minHeight = '50pt';
innerDiv2.classList.add('divCell');
innerDiv2.setAttribute("data-text", "Year");
var firstDiv = document.createElement('div');
firstDiv.contentEditable = 'false';
firstDiv.classList.add('divTable');
var rowDiv = document.createElement('div');
rowDiv.classList.add('divRow');
rowDiv.appendChild(innerDiv1);
rowDiv.appendChild(innerDiv2);
firstDiv.appendChild(rowDiv);
var secondDiv = document.createElement('div');
secondDiv.style.minWidth = '150pt';
secondDiv.style.minHeight = '80pt';
secondDiv.contentEditable = 'true';
secondDiv.classList.add('boxed');
secondDiv.setAttribute("data-text", "Case summary");
var div = document.createElement('div');
div.contentEditable = 'false';
div.classList.add('inline');
div.classList.add('boxed');
div.appendChild(firstDiv);
div.appendChild(secondDiv);
insert(div);
}
</script>
<body id="main" spellcheck="false">
<button onclick="legalCaseBox()">legalCaseBox</button>
<div id="mainDiv" contenteditable="true"></div>
</body>
http://jsfiddle.net/Lfysfz6k/3/
观察第一个div是空的,所以它的高度较小,year
div的高度大于第一个div,所以当点击第一个div时,它不会被最小化,因为你的年份div有一些最小的高度,因为文本。当你点击yeardiv时,第一个div是空的,高度较小,所以在你输入一些东西之前,你的yeardiv是最小化的。
如果你不想取消上面的注释行,然后尝试添加height
到每个div
相关文章:
- 我怎么能让流星简单模式中的一个字段等于一个js变量,并且仍然让用户填写简单模式的其余部分
- 如何使用Node.js脚本从Rally获取用户的修订历史
- Express.js:在用户发帖时获取用户的引荐来源网址
- 将用户制作的SVG(raphael.js)发送到服务器(php),以便通过电子邮件发送
- 在离开Aurelia.js上的页面之前,我如何要求用户进行确认
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 通过node.js和socket.io向特定用户发送数据
- 通过node.js和socket.io在两个用户之间发送消息
- 基于用户加载不同的controller/js文件'访问级别
- NumericTextBox-当用户键入数字时执行JS计算.能做到吗
- dust.js是随机用户上传的模板,可以安全地在服务器端执行
- 护照.js用户登录和身份验证
- 拾取metro.js用户注销
- instafeed.js用户don'不起作用
- Node.js -用户身份验证与护照(通过构建10个项目课程学习Node.js)
- CSS / JS用户控制的阴影效果
- Node.js用户认证
- 使用MEAN.JS用户授权
- 为RESTful JSON API构建一个Backbone.js用户模型、集合和视图
- 如何仅使用HTML/JS用户AJAX响应