- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为网站开发下拉菜单。我正在使用我为名为“ddmenu”的菜单找到的这个不错的库。我对其进行了定制,使其接近我想去的地方。我的问题是我无法使子菜单的右 边缘与父菜单的右 边缘对齐。所有 3 个菜单都向右或向左倾斜......并且倾斜程度不同。
我只是没有足够的 CSS 来轻松理解这个库。
如有任何提示或帮助,我们将不胜感激。
提前致谢
史蒂夫
我的 menu.html 文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>NSD: NOAA Staff Directory</title>
<style type="text/css">
.nav_user_menu
{
float: right;
color: black;
text-decoration: none;
font-weight:bold;
}
.nav_logout_link
{
display: block;
float: right;
padding: 5px 10px;
color: black;
text-decoration: none;
font-weight:bold;
border-left: 1px solid;
}
</style>
<link rel="StyleSheet" href="search_files/ddmenu.css" type="text/css">
<script language="JavaScript" "text="" javascript"="" src="search_files/ddmenu.js"></script>
</head>
<body>
<ul id="ddmenu">
<li>
<a href="#">A Generic Link</a>
</li>
<li>
<a href="#">Menu 1</a>
<ul>
<li><a href="#">Menu Choice 1</a></li>
<li><a href="#">Menu Choice 2</a></li>
<li><a href="#">Menu Choice 3</a> </li>
<li>
<a href="#">Help</a>
<ul>
<li><a href="#">Submenu Choice 1</a></li>
<li><a href="#">Submenu Choice 2 </a></li>
<li><a href="#">Submenu Choice 3</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#">Menu 2</a>
<ul>
<li><a href="#">Add/Edit ACME Locations</a></li>
<li><a href="#">Add/Edit ACME Mailing Addresses</a></li>
<li><a href="#">Add/Edit ACME Regions</a></li>
<li><a href="#">Add/Edit ACME Employee Types</a></li>
<li><a href="#">Add/Edit ACME Employee Flags</a></li>
<li><a href="#">Add/Edit ACME Production Control Users</a></li>
<li><a href="#">Add/Edit ACME Report Access</a></li>
</ul>
</li>
<!-- Log Out Button ---------------------------------------------------->
<div class="nav_logout_link">
<a href="#">Log Out</a>
</div>
<div class = "nav_user_menu">
<li>
<a href="#">Menu 3</a>
<ul>
<li><a href="#">Update My Record</a></li>
<li><a href="#">Update My ACME Sales Profile</a></li>
<li><a href="#">Update My Voluntary ACME Sales Statistics</a></li>
<li><a href="#">My Reports</a></li>
</ul>
</li>
</div>
</ul><!-- end menu -->
</body>
</html>
ddmenu.css 文件:
/* ---------------------------------------------
Keyboard accessible dropdown menu
Author:Adriana Palazova
Version:22 February 2009
last rev.: 19 October 2009
gratitude to Matthew Carroll - http://carroll.org.uk/sandbox/suckerfish/bones2.html
and
Alan Gresley and Duncan Hill - http://css-class.com/articles/ursidae/
------------------------------------------------ */
#ddmenu {font: bold 10pt Arial,Helvetica;border: 2px solid gray;}
/*#ddmenu a:link {text-decoration:none}*/
/*#ddmenu a:visited {text-decoration:none}*/
#ddmenu a:hover, #ddmenu a:focus, #ddmenu a:active {text-decoration:underline}
/* --- TOP LEVEL MENU STYLES --- */
#ddmenu li{list-style-type:none;}
#ddmenu
{
float:left;
display:inline;
width:100%;
padding:0;
background:#fff0ca; /*#414141;*/
}
#ddmenu li
{
position:relative;
float:left;
/*border-right:1px solid /*#fff; */
background:#fff0ca;/*#414141; */
font-weight:bold
}
#ddmenu li a
{
display:block;
white-space: nowrap;
/*width:7em; */
padding:5px 0.7em 7px;
border: 1px solid gray;
border-top: 0px;
border-bottom:0px;
/*border-style:solid;
border-width:1px;*/
/*border-width:1px 1px 0;
border-style:solid; */
/*border-color:#3e8ebe #0b3965 #003 #3e8ebe;*/
/*color:#fff*/
}
/* --- SUB MENU ITEMS --- */
#ddmenu li li
{
border:0 none;
font-weight:normal;
z-index:20
} /* no width here because of IE */
#ddmenu li li a
{
/*width:11em; */
padding:5px 0.5em 7px;
border-width:1px
}
#ddmenu ul > li
{
display:block;
float:none;
text-align:left;
} /* for Opera */
/* --- SUB MENU FIRST LEVEL INITIAL POSITION --- */
#ddmenu ul
{
position:absolute;
left:-9999px;
top:100%;
/*width:12em; */
padding:0;
border:1px solid #003
}
/*for modern browsers:*/
#ddmenu li > ul
{
top:auto;
width:auto
}
/*see the conditional comments for IE7*/
/* --- SHOW FIRST LEVEL SUB MENU --- */
/*For ie6:*/
#ddmenu li.sfhover ul,
#ddmenu li a:active ul,
#ddmenu li.sffocusparent ul,
/* menu points to the right */
/*#ddmenu li a.sffocus ul {left:0}*/
/*#ddmenu li a.sffocus ul {left:-10em} */
/*#scooby li a.sffocus ul {left:-22em} */
/* for modern browsers + IE7:*/
#ddmenu li:hover > ul,
#ddmenu li.sfhover > ul,
#ddmenu li.sffocusparent > ul,
#ddmenu li a:active > ul,
#ddmenu li a:focus + ul,
/* menu points to the right */
/*#ddmenu li a.sffocus + ul {left:auto}*/
#ddmenu li a.sffocus + ul {left:-10em}
/* --- SUB MENU SECOND LEVEL and following levels UNHOVERED POSITION --- */
#ddmenu li:hover ul ul,
#ddmenu li:active ul ul,
#ddmenu a:focus ul ul,
#ddmenu li.sfhover ul ul,
#ddmenu a.sffocus ul ul,
#ddmenu li.sffocusparent ul ul,
#ddmenu li.sffocus ul ul {left:-9999px}
/* --- SHOW SECOND LEVEL SUB MENU --- */
/* For ie6: */
#ddmenu ul li a:hover ul, #ddmenu ul li.sfhover ul,
#ddmenu ul li a:active ul,
#ddmenu ul li.sffocusparent ul,
/* use a positive number to point the submenu to the right, use 12em for margin-left*/
#ddmenu ul li.sffocus ul {margin-left: -22em; top:-1px; left:1px}
/* for modern browsers + IE7: */
#ddmenu ul li:hover > ul,
#ddmenu ul li.sfhover > ul,
#ddmenu li li a.sffocus + ul,
/* use a positive number to point the submenu to the right, use 12 em for margin-left*/
#ddmenu li li.sffocus > ul {margin-left: -22em; top:-1px; left:1px}
/* --- SUB LEVEL positions for JavaScript OFF - thanks http://css-class.com/articles/ursidae/ --- */
/* --- The focus position for submenu anchors --- */
#ddmenu.jsoff li li a:focus, #ddmenu.jsoff li li a:active { /* --- THE FOCUS POSITION FOR FIRST SUB MENU ANCHORS --- */
position:relative;
left:9999px;
top:-1px;
z-index:21;
}
#ddmenu.jsoff li li li a:focus, #ddmenu.jsoff li li li a:active { /* --- THE FOCUS POSITION FOR SECOND SUB MENU ANCHORS --- */
left:19999px;
margin-left:12em;
top:-2.9em;
}
/* --- The hovered position for submenu anchors when the anchor is in focus --- */
#ddmenu.jsoff li:hover li a:focus, #ddmenu.jsoff li:hover li a:active {
position:relative; left:auto; top:-1px; margin-left:0}
#ddmenu.jsoff li:hover a:focus + ul { /* --- THE POSITION OF FIRST LEVEL SUB MENU, WHEN THE PARENT IS FOCUSSED AND HOVERED --- */
margin-left:0px;
}
#ddmenu.jsoff li li a:focus + ul { /* --- THE POSITION OF SECOND LEVEL SUB MENU, WHEN THE PARENT IS FOCUSSED FOR JavaScript OFF --- */
top:-1px;
left:12em;
margin-left:10000px;
}
#ddmenu.jsoff li:hover li a:focus + ul { /* --- THE POSITION OF SECOND LEVEL SUB MENU, WHEN THE PARENT IS FOCUSSED AND HOVERED --- */
left:12em;
margin-left:1px;
}
/* --- BACKGROUND IMAGES OF PARENT ITEMS --- */
#ddmenu li a.mum {
BACKGROUND: url(../images/down.gif);
background-repeat: no-repeat;
background-position: 95% 50%;
}
#ddmenu ul li a.mum
{
BACKGROUND: url(../images/right.gif);
}
/* --- LINK HOVER STYLES --- */
#ddmenu li a:link, #ddmenu li a:visited {background-color:transparent}
#ddmenu li a:hover, #ddmenu li:hover a, #ddmenu li a:focus, #ddmenu li a:active,
#ddmenu li.sfhover a, #ddmenu li a.sffocus, #ddmenu li.sffocusparent a {background-color:#fff0ca/*#135*/}/* top level background hover color */
#ddmenu li li a:link, #ddmenu li li a:visited {background-color:transparent}
#ddmenu ul li a:hover, #ddmenu ul li:hover a, #ddmenu ul li a:focus, #ddmenu ul li a:active,
#ddmenu ul li.sfhover a, #ddmenu ul li a.sffocus, #ddmenu ul li.sffocusparent a {background-color:blue;color:#fff0ca;}
#ddmenu li li li a:link, #ddmenu li li li a:visited {background-color:transparent}
#ddmenu li li li a:hover, #ddmenu li li li:hover a, #ddmenu li li li a:focus, #ddmenu li li li a:active,
#ddmenu li li li.sfhover a, #ddmenu li li li a.sffocus, #ddmenu li li li.sffocusparent a {background-color:blue;color:#fff0ca;} /*{background-color:#135}*/
/* <!--[if IE 7]> */
#ddmenu li > ul {top:100%}
#ddmenu a
{
background: url(../images/down.gif) no-repeat -95% -50%;
}
#ddmenu ul li:hover > ul, #ddmenu ul li.sfhover > ul,
#ddmenu li li a.sffocus + ul, #ddmenu ul li.sffocusparent > ul {left:0}
ddmenu.js 文件:
var menuID = 'ddmenu';
/* --- gratitude to Matthew Carroll - http://carroll.org.uk/ - http://carroll.org.uk/sandbox/suckerfish/bones2.html
based on http://www.htmldog.com/articles/suckerfish/dropdowns/ --- */
function accessible_menus_ie() {
var sfEls = document.getElementById(menuID).getElementsByTagName('LI');
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=(this.className.length>0? ' ': '') + 'sfhover';
this.parentNode.className+=(this.parentNode.className.length>0? ' ': '') + 'sfhover';
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp('( ?|^)sfhover\\b'), '');
this.parentNode.className=this.parentNode.className.replace(new RegExp('( ?|^)sfhover\\b'), '');
}
}
}
function accessible_menus() {
var ddMenu = document.getElementById(menuID);
ddMenu.className = ddMenu.className.replace(new RegExp('(^|\\s)jsoff(\\s|$)'), '');
var mcEls = document.getElementById(menuID).getElementsByTagName('A');
for (var i=0; i<mcEls.length; i++) {
mcEls[i].onfocus=function() {
this.className = this.className ? this.className + ' sffocus' : 'sffocus'; //a:focus
this.parentNode.className = this.parentNode.className ? this.parentNode.className + ' sffocusparent' : 'sffocusparent'; //li < a:focus
this.parentNode.parentNode.className = this.parentNode.parentNode.className ? this.parentNode.parentNode.className + ' sffocusparent' : 'sffocusparent'; //ul < li < a:focus
if(this.parentNode.parentNode.parentNode.nodeName == 'LI') { //li < ul < li < a:focus
this.parentNode.parentNode.parentNode.className = this.parentNode.parentNode.parentNode.className ? this.parentNode.parentNode.parentNode.className + ' sffocusparent' : 'sffocusparent'; //li < ul < li < a:focus
this.parentNode.parentNode.parentNode.parentNode.className = this.parentNode.parentNode.parentNode.parentNode.className ? this.parentNode.parentNode.parentNode.parentNode.className + ' sffocusparent' : 'sffocusparent'; //ul < li < ul < li < a:focus
if(this.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == 'LI') { //li < ul < li < ul < li < a:focus
this.parentNode.parentNode.parentNode.parentNode.parentNode.className = this.parentNode.parentNode.parentNode.parentNode.parentNode.className ? this.parentNode.parentNode.parentNode.parentNode.parentNode.className + ' sffocusparent' : 'sffocusparent'; //li < ul < li < ul < li < a:focus
this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className = this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className ?this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className + ' sffocusparent' : 'sffocusparent'; //ul < li < ul < li < ul < li < a:focus
}
}
}
mcEls[i].onblur = function() {
this.className = this.className.replace(new RegExp('(^|\\s)'+'sffocus'+'(\\s|$)'), '');
this.parentNode.className = this.parentNode.className.replace(new RegExp('(^|\\s)'+'sffocusparent'+'(\\s|$)'), '');
this.parentNode.parentNode.className = this.parentNode.parentNode.className.replace(new RegExp('(^|\\s)'+'sffocusparent'+'(\\s|$)'), '');
if(this.parentNode.parentNode.parentNode.nodeName == 'LI') {
this.parentNode.parentNode.parentNode.className = this.parentNode.parentNode.parentNode.className.replace(new RegExp('(^|\\s)'+'sffocusparent'+'(\\s|$)'), '');
this.parentNode.parentNode.parentNode.parentNode.className = this.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp('(^|\\s)'+'sffocusparent'+'(\\s|$)'), '');
if(this.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == 'LI') {
this.parentNode.parentNode.parentNode.parentNode.parentNode.className = this.parentNode.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp('(^|\\s)'+'sffocusparent'+'(\\s|$)'), '');
this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className = this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp('(^|\\s)'+'sffocusparent'+'(\\s|$)'), '');
}
}
}
}
}
// only ie needs the sfHover script. all need the accessibility script...
// thanks Brothercake - Generic onload - GO1.1 - http://www.brothercake.com/site/resources/scripts/onload/
if(typeof window.addEventListener != 'undefined') { //.. gecko, safari, konqueror and standard
window.addEventListener('load', accessible_menus, false);}
else if(typeof document.addEventListener != 'undefined') { //.. opera
document.addEventListener('load', accessible_menus, false);}
else if(typeof window.attachEvent != 'undefined') { //.. win/ie
window.attachEvent('onload', accessible_menus_ie);
window.attachEvent('onload', accessible_menus);}
//** remove this condition to degrade older browsers
else { //.. mac/ie5 and anything else that gets this far
if(typeof window.onload == 'function') { //if there's an existing onload function
var existing = window.onload; //store it
window.onload = function() { //add new onload handler
existing(); //call existing onload function
//call generic onload function
accessible_menus_ie();
accessible_menus();
};
} else {
window.onload = function() { //setup onload function
accessible_menus_ie();
accessible_menus();
};
}
}
最佳答案
在显示 /* --- SHOW FIRST LEVEL SUB MENU --- */
的部分,尝试将 left
的值更改为 0em
而不是 left:-10em;
。我以前从未玩过这个插件,但我最终解决了这个问题。有两个例子。您想要更改“现代浏览器”部分中的第二个。使用行号会更容易。
关于CSS:下拉菜单:让子菜单与菜单对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12538182/
我有这个 html 代码: HELLO WORLD! X V HELLO WORLD! X V 我想按 X(类关闭)将父 div 的高度更改为 20px 并显示 V(类打开),但在每个 d
在会计应用程序的许多不同实现中,有两种主要的数据库设计方法来保存日志和分类帐数据。 只保留 Journal 信息,然后 Ledger 只是 Journal 的一个 View (因为 journal 总
我想在另一个子里面有一个子, sub a { sub b { } } 我想为每次调用 sub b 创建一个新的 sub a 实例。有没有办法在 Perl 中做到这一点? 当我运行上面的
我有一些代码正在查找重复项并突出显示单元格: Private Sub cmdDups_Click() Dim Rng As Range Dim cel As Range Set Rng = ThisW
可能有一个简单的解决方案,但我很难过。 我有一个包含一个 ID 字段的主表。在两个可能的字段中有一个具有该 ID 的子表。想象一个由选手 A 和选手 B 组成的 double 队。Master 表将有
假设我有一个包含对象的数组: [ { "id": "5a97e047f826a0111b754beb", "name": "Hogwarts", "parentId": "
我正在尝试对 MySQL 数据库表执行一对父/子模型的批量插入,但似乎无法使用标准的 ActiveRecord 功能来完成。所以,我尝试了 activerecord-import gem,但它也不支持
我有一个带有多个子类的父抽象类。最终,我希望通过 GUI 中的进度条显示子类中完成的进度。 我目前所做的,我意识到这是行不通的,是在父类中声明为每个子类将覆盖的虚拟方法的事件方法定义。所以像: pub
是否可以通过键数组在对象中设置变量?例如我有这个对象: var obj = {'outer': {'inner': 'value'} }; 并希望设置由键数组选择的值: var keys = ['ou
我有一个名为 companies 的 MySQL 表,如下所示: +---------+-----------+-----------+ | id_comp | comp_name | id_pare
我正在尝试使用 sublime text 在 sublime text 上的 ionic 上打开我的第一个应用程序。它给了我一个“找不到命令”的错误。如何修复? 我试过这些命令: sudo rm -r
不好意思问,但我正在使用 webapp2,我正在设计一个解决方案,以便更容易定义路由 based on this google webapp2 route function .但这完全取决于能够在子级
我有代表树的数字字符串(我不知道是否有官方名称): 012323301212 上面的例子代表了 2 棵树。根用 0 表示。根的直接子代为“1”,“1”的直接子代为“2”,依此类推。我需要将它们分组到由
是否可以在当前 Activity 之上添加 Activity 。例如,假设我单击一个按钮,然后它将第二个 Activity 添加到当前 Activity 。而第二个 Activity 只覆盖了我当前
我很难思考如何为子资源建模。 以作者的书籍为例。你可以有 N 本书,每本书只有一位作者。 /books GET /books POST /books/id PUT /books/id DELETE 到
有人可以向我解释以下内容(python 2.7) 来自已解析文件的两个字符串数字: '410.9''410.9 '(注意尾随空格) A_LIST = ['410.9 '] '410.9' in '41
背景 在 PowerShell 中构建 hash table 是很常见的通过特定属性快速访问对象,例如以 LastName 为基础建立索引: $List = ConvertFrom-Csv @' I
我真的很难弄清楚如何调用嵌套 Polymer Web 组件的函数。 这是标记: rise-distribution组件有 canPlay我想从 rise-playlist
我写了一个小工具转储(以 dot 格式)一个项目的依赖关系图,其中所有位于同一目录中的文件都聚集在一个集群中。当我尝试生成包含相应图形的 pdf 时,dot开始哭: 命令 dot -Tpdf trim
给定一个 CODE ref,是否可以: 访问该 CODE ref 的解析树 通过指定 CODE ref 的解析树来创建一个新的 CODE ref,该解析树可以包含在 1 中返回的解析树的元素 通常我们
我是一名优秀的程序员,十分优秀!