我有一个下拉列表,其中包含很长的值作为选项。当我选择一个长值时,它超出了包含的 div 的边界。此外,所选元素上方的元素会移到顶部而不是“下拉”。这是第一个选项“ALL”向上而不是向下。
我搜索并找到了一些 Javascript 方法来解决这个问题。解决此问题的 css 方法是什么?
注意:在 IE11 和 Chrome 中观察到的问题。在 IE6 中,它工作得很好。
问题
<div style="width:500px; background-color:gray">
<table class="table-tab-body" cellspacing="0" cellpadding="0" width="100%" style="border-bottom: 2px solid #5F005F;">
<tbody>
<tr>
<td colspan="2">
<b style="margin: 0 0 0 10px;">
Select Provider
</b>
</td>
<td colspan="2">
<b>
Select Locations
</b>
</td>
</tr>
<tr>
<td colspan="2" style="overflow:hidden; border: 3px solid purple; ">
<div style="margin: 0 0 0 10px; padding: 0 0 0 0px; overflow:hidden; width:245px; ">
<select name="drpVendor" id="drpVendor" fieldname="Vendor" style="width: 250px; padding: 0 0 0 0px; overflow:hidden;">
<option selected="selected" value="">ALL</option>
<option value="11824">A SCD GARMENT CO LTD DIV (678904), Kerala, India</option>
</select>
</div>
</td>
<td colspan="2" style="overflow:hidden; border: 1px solid blue; ">
<select name="drpVendorFacility" id="drpVendorFacility" fieldname="Facility" style="width: 250px;">
<option value="1">ALL</option>
</select>
</td>
</tr>
<tr>
<td colspan="4">
<hr>
</td>
</tr>
</tbody>
</table>
<input name="hidUserID" type="hidden" id="hidUserID" value="1">
</div>
IE6
最佳答案
1) 首先,您的两个选择框的宽度大于包含它的列的宽度(您需要考虑使用的所有填充和边距)。
将每个选择框的宽度设置为 230px 左右后,它们应该适合。
2) 你说“当你选择一个 long 值时,它超出了包含 div 的边界”。
鉴于您的选择选项包含的字符比选择框的宽度所能容纳的字符多,因此它必须扩展到足够宽的宽度,以便在下拉时可以看到选项。这不是错误,这就是它的意图。
如果您想要下拉菜单与您的选择框具有相同的宽度,则可以通过多行显示特别冗长的选项。据我所知,没有良好的跨浏览器兼容的纯 CSS 解决方案。
但是,您可以通过结合使用 javascript/jquery + CSS 来实现这一点。
3) 向上/向下的“问题”与浏览器呈现元素/CSS 的不同方式有关。
这个“问题”可以通过使用第 2 点中建议的 javascript/jquery 解决方案得到改进。
4) 请注意,IE7 及以下版本不支持很多针对此类问题的 javascript/jquery 解决方案,但目前不提供对 IE6 和 7 的全面支持也是可以的。< br/=""> 如果需要,您始终可以为旧版浏览器提供单独的 CSS 样式表。
5) 你可以很容易地将你当前的布局转换为Div+CSS,从而放弃使用表格,表格实际上应该只用于数据的显示。
如果您使用 Div+CSS 布局而不是表格形式,则更容易让您的页面响应不同的屏幕尺寸。
6) 我根据您的原始代码整理了一个jquery 插件解决方案的演示,供您引用。 我将表格布局保留在 demo 中但如第 5 点所述,如果可能,您应该考虑将布局转换为 Div。
希望这对您有所帮助。
$(function() {
$("#drpVendor").selectBoxIt({
theme: "default",
defaultText: "ALL",
autoWidth: false
});
$("#drpVendorFacility").selectBoxIt({
theme: "default",
defaultText: "ALL",
autoWidth: false
});
});@import url("http://cdnjs.cloudflare.com/ajax/libs/jquery.selectboxit/3.3.0/jquery.selectBoxIt.css");
.selectboxit-container .selectboxit,
.selectboxit-container .selectboxit-options {
width: 225px;
/* Width of the dropdown button */
border-radius: 3px;
margin-top: 3px;
}
.selectboxit-container span,
.selectboxit-container .selectboxit-options a {
line-height: 20px;
height: 22px;
}
.selectboxit-options .selectboxit-option .selectboxit-option-anchor {
white-space: normal;
min-height: 22px;
height: auto;
}
.first {
padding: 0 0 0 10px;
}
.top {
padding-top: 5px;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.selectboxit/3.3.0/jquery.selectBoxIt.min.js"></script>
<div style="width:500px; background-color:gray">
<table class="table-tab-body" cellspacing="0" cellpadding="0" width="100%" style="border-bottom: 2px solid #5F005F;">
<tbody>
<tr>
<td colspan="2" class="first top">
<b>Select Provider</b>
</td>
<td colspan="2" class="top">
<b>
Select Locations
</b>
</td>
</tr>
<tr>
<td colspan="2" class="first">
<select name="drpVendor" id="drpVendor" fieldname="Vendor">
<option selected="selected" value="">ALL</option>
<option value="11824">A SCD GARMENT CO LTD DIV (678904), Kerala, India</option>
<option value="11825">A SCD GARMENT CO LTD DIV Sample, Sample, Sample</option>
</select>
</td>
<td colspan="2">
<select name="drpVendorFacility" id="drpVendorFacility" fieldname="Facility">
<option value="1">ALL</option>
<option value="2">Option 1</option>
<option value="3">Option 2</option>
</select>
</td>
</tr>
<tr>
<td colspan="4">
<hr>
</td>
</tr>
</tbody>
</table>
<input name="hidUserID" type="hidden" id="hidUserID" value="1">
</div>
关于html - 下拉框打破div边框的CSS解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37692673/
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我在MiniTest::Spec和Capybara中使用以下规范:find_field('Email').must_have_css('[autofocus]')检查名为“电子邮件”的字段是否具有autofocus属性。doc说如下:has_css?(path,options={})ChecksifagivenCSSselectorisonthepageorcurrentnode.据我了解,字段“Email”是一个节点,因此调用must_have_css绝对有效!我做错了什么? 最佳答案 通过JonasNicklas得到了答案:No
在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',
在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这
所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择
我使用Nokogiri(Rubygem)css搜索寻找某些在我的html里面。看起来Nokogiri的css搜索不喜欢正则表达式。我想切换到Nokogiri的xpath搜索,因为这似乎支持搜索字符串中的正则表达式。如何在xpath搜索中实现下面提到的(伪)css搜索?require'rubygems'require'nokogiri'value=Nokogiri::HTML.parse(ABBlaCD3"HTML_END#my_blockisgivenmy_bl="1"#my_eqcorrespondstothisregexmy_eq="\/[0-9]+\/"#FIXMEThefoll
我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.
我正在学习http://ruby.railstutorial.org/chapters/static-pages上的RubyonRails教程并遇到以下错误StaticPagesHomepageshouldhavethecontent'SampleApp'Failure/Error:page.shouldhave_content('SampleApp')Capybara::ElementNotFound:Unabletofindxpath"/html"#(eval):2:in`text'#./spec/requests/static_pages_spec.rb:7:in`(root)'
我有一个div,它根据表单是否正确提交而改变。我想知道是否可以检查类的特定元素?开始元素看起来像这样。如果输入不正确,添加错误类。 最佳答案 试试这个:browser.div(:id=>"myerrortest").class_name更多信息:http://watir.github.com/watir-webdriver/doc/Watir/HTMLElement.html#class_name-instance_method另一种选择是只查看具有您期望的类的div是否存在browser.div((:id=>"myerrortes
相信很多人在录制视频的时候都会遇到各种各样的问题,比如录制的视频没有声音。屏幕录制为什么没声音?今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音,你可以试试这个方法。 一、检查是否打开电脑系统声音相信很多小伙伴在录制视频后会发现录制的视频没有声音,屏幕录制为什么没声音?如果当时没有打开音频录制,则录制好的视频是没有声音的。因此,建议在录制前进行检查。屏幕上没有声音,很可能是因为你的电脑系统的声音被禁止了。您只需打开电脑系统的声音,即可录制音频和图画同步视频。操作方法:步骤1:点击电脑屏幕右下侧的“小喇叭”图案,在上方的选项中,选择“声音”。 步骤2:在“声