我在一个包含div的内部div.
<div id="container">
<div id="inner"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
#container {
width: 100px;
height: 100px;
background-color: red;
}
#inner {
margin: 30px;
width: 40px;
height: 40px;
background-color: black;
}
Run Code Online (Sandbox Code Playgroud)
我希望这能使一个小的黑盒子在一个更大的红色盒子里垂直和水平居中.相反,我得到一个黑盒子贴在红色框的顶部,红色框有边缘顶部.
有人能解释一下CSS认为它在做什么吗?
我正在使用jquery mobile为UI和jquery模板构建一个锻炼目录来处理html.我已经能够将html附加到已创建的页面并通过.page()函数获取jquery mobile来更改标记.
但是,我希望能够创建新的jq移动页面.我可以使用data-role = page将代码注入到div中,并在其上调用.page(),这一切都很好.但是将一个完全制作的页面添加到正文中是行不通的.
编辑:这个问题和我的答案是指jquery mobile alpha 3
我需要阻止Ctrl-w,Ctrl-t,Ctrl-n执行其默认功能.我知道删除用户权利是不受欢迎的,但在作出判决之前请先听我说.
event.preventDefault()仅适用于像p这样的较小的键组合,但是根据javascript捕获浏览器快捷方式(ctrl + t/n/w),n,t和w对客户端javascript免疫.
我正在为3-12岁的孩子编写教育云软件,而我使用Chrome的Kisok模式来限制他们的使用能力.我完全控制了有问题的电脑.是否有隐藏的Chrome选项/扩展程序/ Windows技巧/其他我可以用来使计算机实际上成为自助服务终端而不是"kisok"的东西?
另外,我使用写云代码编辑器王牌,我想用emacs的键绑定,但我不断打开新的窗口,当我尝试下去一行.
编辑澄清:这是Chrome的仅仅是因为那是投机/我们控制的系统,但如果任何人有FF/O/IE的想法,将是有益
我在文档的touchstart上使用preventDefault()以防止在页面上滚动.不幸的是,这可以防止太多 用户无法再将焦点放在输入上(并打开软键盘).使用jQuery focus(),我可以将焦点放在touchstart上的输入上.这会在iOS上打开软键盘(大部分时间),但从不在Android上打开.
背景:
我有一个网页,我想尽可能多的移动应用程序.我只关心Android和iOS,但任何形式因素.我首先使页面中的内容与屏幕大小完全相同.这很好,直到用户将手指放在页面上.我需要阻止用户滚动.以下代码实现了这一点,但在两个操作系统上的方式略有不同.
$(document).on('touchstart', function(e) {
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
在iOS上,这会阻止弹性滚动:用户可以通过尝试滚动页面来显示网页后面的纹理.该功能对于常规网页来说很不错,但在我的情况下它会降低用户体验.
在Android上,防止我用来隐藏地址栏的方便黑客的启示.Android浏览器以地址栏可见开头,但当用户向下滚动页面时,它会消失.要以编程方式强制浏览器隐藏地址栏,只需将此行代码添加到您在load时调用的函数中.
$('html, body').scrollTop(1);
Run Code Online (Sandbox Code Playgroud)
这是告诉Android浏览器我们已经滚动的hacky(但也是唯一的)方法,并且不再需要地址栏.
如果没有文件上的preventDefault,Android浏览器将允许滚动并显示地址栏.
因此,两个操作系统都有充分的理由在文档的每个touchstart上调用preventDefault(),但它可以防止太多.点击输入字段不起作用.使用jQuery focus()调用可以提供帮助,但只能打开iOS上的软键盘,而不是Android.
$('input').on('touchstart', function() {
$(this).focus();
});
Run Code Online (Sandbox Code Playgroud)
如何阻止页面滚动,但使用浏览器本机功能将焦点放在输入字段上?
注意:此代码
$(document).on('touchstart', function(e) {
if (e.target.nodeName !== 'INPUT') {
e.preventDefault();
}
});
Run Code Online (Sandbox Code Playgroud)
是有缺陷的,因为只要初始触摸源自输入字段内,用户仍然可以滚动页面.
我有一个带滚动条的textarea.我需要使用javascript更改光标在textarea中的位置并滚动textarea以使光标可见. 我正在使用elem.selectionStart和elem.selectionEnd移动光标,但当我将其移动到一个不可见的点时,textarea不会滚动,因此光标可见.
更多细节(可能是TL; DR)我正在创建一个幻灯片编辑器,并在内容的编辑器(带滚动条的textarea)旁边预览完整的幻灯片.当您将光标移动到textarea时,幻灯片会更改幻灯片,因此您始终可以查看正在编辑的幻灯片.我需要得到它,所以更改幻灯片(使用按钮)移动光标,以便您可以看到生成该幻灯片的代码.
// slideBoundries has numbers which are the indexes where the slides begin/end
// eg: [0, 81, 140, 250] for slideshow with 3 slides
if (doc.editor.selectionEnd > slideBoundries[curSlide] &&
doc.editor.selectionEnd < slideBoundries[curSlide + 1]) {
return;
}
doc.editor.selectionStart = slideBoundries[curSlide];
doc.editor.selectionEnd = slideBoundries[curSlide];
Run Code Online (Sandbox Code Playgroud)
我可以只计算文件中的换行数,这样我就知道向下滚动多远,但是有很多行很长并占用多行.我使用等宽字体,因此计算占用多行的换行符和行数,但我想要一种更简单的方法.是否有一个函数我可以调用来模仿当用户移动光标时发生的事情,因为当用户点击时textarea总是滚动到那个点...
编辑:由于受欢迎的需求,这里是一个小提琴:http://jsfiddle.net/tShQ2/
我将用来解决这个问题的方法是创建一个具有相同宽度的幻像文本区域,但是自动调整到高度.它必须是可见的,否则它将无法工作,所以将它设置为abs位置并将其移出屏幕.然后将文本放在所需的光标位置之前.然后将真正的textarea滚动到幻像文本区域的高度.