Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >如何使下拉菜单向右展开而不是向下展开?

如何使下拉菜单向右展开而不是向下展开?
EN

Stack Overflow用户
提问于 2020-05-13 13:56:08
回答 2查看 841关注 0票数 0

对于这个带有下拉列表的侧栏示例:

https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_sidenav_dropdown

在我的例子中,dropdown将不会是用户友好的,因为有很多项,所以我不认为向下扩展dropdown是一个好主意。我想展开并指向右侧,如下所示:

我该怎么做呢?提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-13 14:14:56

我在一个容器中添加了位置相对的按钮和下拉列表,并添加了这个css:

代码语言:javascript
代码运行次数:0
复制
.dropdown-container {
   position: absolute;
   width: 100%;
   left: 100%;
   z-index: 1;
   top: 0px;
}

请参阅this working fiddle

票数 1
EN

Stack Overflow用户

发布于 2020-05-13 18:00:45

没什么,只需添加一个列表并将其设置为固定,然后调整页边距

代码语言:javascript
代码运行次数:0
复制
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<style>
body {
  font-family: "Lato", sans-serif;
}

/* Fixed sidenav, full height */
.sidenav {
  height: 100%;
  width: 200px;
  position: fixed;
  z-index: 2221;
  top: 0;
  left: 0;
  background-color: #111;
 
  padding-top: 20px;
}

/* Style the sidenav links and the dropdown button */
.sidenav a, .dropdown-btn {
  padding: 6px 8px 6px 16px;
  text-decoration: none;
  font-size: 20px;
  color: #818181;
  display: block;
  border: none;
  background: none;
  width: 100%;
  text-align: left;
  cursor: pointer;
  outline: none;
}

/* On mouse-over */
.sidenav a:hover, .dropdown-btn:hover {
  color: #f1f1f1;
}

/* Main content */
.main {
  margin-left: 200px; /* Same as the width of the sidenav */
  font-size: 20px; /* Increased text to enable scrolling */
  padding: 0px 10px;
}

/* Add an active class to the active dropdown button */
.active {
  background-color: green;
  color: white;
}

/* Dropdown container (hidden by default). Optional: add a lighter background color and some left padding to change the design of the dropdown content */
.dropdown-container {
  display: none;
  background-color: #262626;
  padding-left: 8px;
}

/* Optional: Style the caret down icon */
.fa-caret-down {
  float: right;
  padding-right: 8px;
}

/* Some media queries for responsiveness */
@media screen and (max-height: 450px) {
  .sidenav {padding-top: 15px;}
  .sidenav a {font-size: 18px;}
}

.dropdown-container ul { 
  position: fixed; 
  margin-left:192px;     
  background-color: #111; 
  list-style: none; 
  margin-top: -36px;
  padding: 0;
}

.dropdown-container ul {
  width: 150px;
}
</style>
</head>
<body>

<div class="sidenav">
  <a href="#about">About</a>
  <a href="#services">Services</a>
  <a href="#clients">Clients</a>
  <a href="#contact">Contact</a>
  <button class="dropdown-btn">Dropdown 
    <i class="fa fa-caret-down"></i>
  </button>
  <div class="dropdown-container">
	<ul>
     <li><a href="#">Link 1</a></li>
     <li><a href="#">Link 2</a></li>
     <li><a href="#">Link 3</a></li>
    
    </ul>

  </div>
  <a href="#contact">Search</a>
</div>

<div class="main">
  <h2>Sidebar Dropdown</h2>
  <p>Click on the dropdown button to open the dropdown menu inside the side navigation.</p>
  <p>This sidebar is of full height (100%) and always shown.</p>
  <p>Some random text..</p>
</div>

<script>
/* Loop through all dropdown buttons to toggle between hiding and showing its dropdown content - This allows the user to have multiple dropdowns without any conflict */
var dropdown = document.getElementsByClassName("dropdown-btn");
var i;

for (i = 0; i < dropdown.length; i++) {
  dropdown[i].addEventListener("click", function() {
  this.classList.toggle("active");
  var dropdownContent = this.nextElementSibling;
  if (dropdownContent.style.display === "block") {
  dropdownContent.style.display = "none";
  } else {
  dropdownContent.style.display = "block";
  }
  });
}
</script>

</body>
</html> 

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61776562

复制
相关文章
SpringMVC中传值有些值为null使用@RequestParam(“name“)解决
代码 package controller; import entity.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; /** * zt * 2020/10/9 * 20:44 */ @
2020/10/23
1.2K0
mui页面跳转(传值+接收)
1 <script type="text/javascript" charset="utf-8"> 2 mui.init(); 3 mui.plusReady(function() { 4 document.getElementById("test").addEventListener("tap", function() { 5 mui.openWindow({ 6
用户4973967
2019/12/16
2K0
@RequestParam 接收参数的值为null处理
@RequestMapping(value = “/test”) public String test( @RequestParam(value = “profit”,required = false,defaultValue = “0”) int profit){ System.out.println(“profit:”+profit); return “success”; } 第一种处理方式(如上图):defaultValue请求参数的默认值,一般和 required = false 一起使用
kirin
2021/03/25
3.3K0
vue事件发射与接收(可实现页面传值和非父子组件传值)
1).给data添加一个 名字为eventhub 的空vue对象,就可以在任何组件都可以调用事件发射接收的方法了,在main.js中添加:
honey缘木鱼
2018/12/28
1.6K0
react中类组件传值,函数组件传值:父子组件传值、非父子组件传值[通俗易懂]
函数组件中我们一般情况下使用useEffect实现数据的请求 // useEffect Hook 看做 componentDidMount,componentDidUpdate 和 componentWillUnmount (加载,更新,卸载)这三个函数的组合。 语法格式: useEffect(()=>{ },[])
全栈程序员站长
2022/08/30
6.3K0
vue项目iframe的传值问题
  所以。我把插件的使用封装了一个html页面。vue项目则利用iframe的方式引入。
Dawnzhang
2019/11/21
1.8K0
react 父子传值_react 父子组件传值 兄弟组件传值「建议收藏」
console.log(data1, data2, e) //输出 1 2 event内容
全栈程序员站长
2022/08/27
2.5K0
不再迷惑,无值和 NULL 值
在关系型数据库的世界中,无值和NULL值的区别是什么?一直被这个问题困扰着,甚至在写TSQL脚本时,心有戚戚焉,害怕因为自己的一知半解,挖了坑,贻害后来人,于是,本着上下求索,不达通幽不罢休的决心(开个玩笑),遂有此文。
用户7657330
2020/08/14
1.3K0
软件测试|SQL中的null值,该如何理解?
Null值在SQL中是用于表示缺失或未知数据的特殊值。本文将深入探讨Null值的概念、处理方法和注意事项,以帮助读者更好地理解和处理SQL中的缺失数据。
霍格沃兹测试开发Muller老师
2023/09/07
2430
vue子组件给父组件传值 接收不到数据_vue父向子组件传值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/02
2K0
微信公众号测试配置url接收值为null
服务器上部署之后,甲方提供了服务器对应的域名地址,但是F5配的是设备证书,腾讯公众号后管配置的url报错{"errcode":-106,"errmsg":"token check fail"}
小草精
2021/03/16
1.3K2
MySQL NULL值特性
NULL是一种“没有类型”的值,通常表示“无值”,“未知值”,“缺失值”,“超界”,“不在其中”等,我们在日常运用中很容易和NULL字符串混淆,这里大致整理了下NULL值的一些特性,以便能够正确使用NULL值。
星哥玩云
2022/08/17
2.7K0
MySQL NULL值特性
[JS ES6]传值和传址
传值是获取一份儿相同的值,并自身重新开一份儿属于自己的内存地址,两个变量是互相独立的并不会互相影响。
坚毅的小解同志的前端社区
2022/11/28
2.7K0
[JS ES6]传值和传址
elasticsearch 处理null值
1.查询为空的字段 我们查询某个字段为空的数据时,在mysql中: select eid,ent_name from ent_search where enttype_code is NULL; 在elasticsearch中,我们使用的api为exists,这个查询是:查询这个字段为空的或者没有这个字段的: GET ent_search/_search { "_source": ["eid","ent_name"], "query": { "bool": {
IT云清
2019/01/22
2.9K0
block传值
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/48010447
用户1451823
2018/09/13
1.7K0
组件传值
vue组件之间的传值大致分为三种:父组件给子组件传值,子组件给父组件传值,兄弟组件之间传值 本文主要介绍vue组件之间简单的数据传递,如果组件之间传递的数据比较复杂,建议使用vue的状态管理模式 vuex
ZEHAN
2021/06/15
1.8K0
传值与传地址
很多语言在传参的时候都有一个传值和传地址(或者是引用)的问题,我想用 C++ 语言来简单的描述一下。因为我觉得无论是传值还是传址,C 或者 C++ 这两种语言都是能够比较直观的描述清楚的语言,原因是可以容易的去观察内存。其他语言也可能可以,只是其他语言的我不太知道如何去做。
码农UP2U
2020/08/26
2.3K0
传值与传地址
Python 传值 or 传引用
注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
宋天伦
2023/10/20
2180
16.动态路由传值和get传值
1.动态路由传值  1.在components目录下新建vContent.vue组件 <template> <div> <h2>{{msg}}</h2> </div> </template> <script> export default { data () { return { msg:'详情组件', } }, methods:{ }, mounted(){ console.log(this
玩蛇的胖纸
2019/10/21
1.6K0
点击加载更多

相似问题

在Python中导入常用模块

40

如何隐式导入常用模块?

12

Python模块导入:导入模块中导入的模块如何?

23

我应该总是使用最通俗的方式来导入模块吗?

10

python:如何导入模块

36
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文