代码之家  ›  专栏  ›  技术社区  ›  Muhammad Dyas Yaskur

如何使引导工具条折叠不改变内容宽度?

  •  -1
  • Muhammad Dyas Yaskur  · 技术社区  · 7 年前

    如何使引导提要栏折叠不改变内容宽度?

    请检查我的密码 Codepen

    $(document).ready(function() {
      $('#sidebarCollapse').on('click', function() {
        $('#sidebar').toggleClass('active');
      });
    });
    @import "https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700";
    body {
      font-family: 'Poppins', sans-serif;
      background: #fafafa
    }
    
    p {
      font-family: 'Poppins', sans-serif;
      font-size: 1.1em;
      font-weight: 300;
      line-height: 1.7em;
      color: #999;
    }
    
    a,
    a:hover,
    a:focus {
      color: inherit;
      text-decoration: none;
      transition: all 0.3s;
    }
    
    .navbar {
      padding: 15px 10px;
      background: #fff;
      border: none;
      border-radius: 0;
      margin-bottom: 40px;
      box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
    }
    
    .navbar-btn {
      box-shadow: none;
      outline: none!important;
      border: none;
    }
    
    .line {
      width: 100%;
      height: 1px;
      border-bottom: 1px dashed #ddd;
    }
    
    .wrapper {
      display: flex;
      width: 100%;
      align-items: stretch;
    }
    
    #sidebar {
      min-width: 250px;
      max-width: 250px;
      background: #7386D5;
      color: #fff;
      transition: all 0.3s;
    }
    
    #sidebar.active {
      margin-left: -250px;
    }
    
    #sidebar .sidebar-header {
      padding: 20px;
      background: #6d7fcc;
    }
    
    #sidebar ul.components {
      padding: 20px 0px;
      border-bottom: 1px solid #47748b;
    }
    
    #sidebar ul p {
      padding: 10px;
      font-size: 1.1em;
      display: block;
    }
    
    #sidebar ul li a {
      padding: 10px;
      font-size: 1.1em;
      display: block;
    }
    
    #sidebar ul li a:hover {
      color: #7386D5;
      background: #fff;
    }
    
    #sidebar ul li.active>a,
    a[aria-expanded="true"] {
      color: #fff;
      background: #6d7fcc;
    }
    
    a[data-toggle="collapse"] {
      position: relative;
    }
    
    .dropdown-toggle::after {
      display: block;
      position: absolute;
      top: 50%;
      right: 20px;
      transform: translateY(-50%);
    }
    
    ul ul a {
      font-size: 0.9em !important;
      padding-left: 30px !important;
      background: #6d7fcc;
    }
    
    ul.CTAs {
      padding: 20px;
    }
    
    ul.CTAs a {
      text-align: center;
      font-size: 0.9em !important;
      display: block;
      border-radius: 5px;
      margin-bottom: 5px;
    }
    
    a.download {
      background: #fff;
      color: #7386D5;
    }
    
    a.article,
    a.article:hover {
      background: #6d7fcc !important;
      color: #fff !important;
    }
    
    #content {
      width: 100%;
      padding: 20px;
      min-height: 100vh;
      transition: all 0.3s;
    }
    
    @media(maz-width:768px) {
      #sidebar {
        margin-left: -250px;
      }
      #sidebar.active {
        margin-left: 0px;
      }
      #sidebarCollapse span {
        display: none;
      }
    }
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet" />
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
    
    <div class="wrapper">
      <nav id="sidebar">
        <div class="sidebar-header">
          <h3>BOOTSTRAP SIDEBAR</h3>
        </div>
    
    
        <ul class="list-unstyled components">
          <p>Dummy Heading</p>
          <li class="active">
            <a href="#homeSubmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">Home</a>
            <ul class="collapse list-unstyled" id="homeSubmenu">
              <li>
                <a href="#">home1</a>
              </li>
              <li>
                <a href="#">home2</a>
              </li>
              <li>
                <a href="#">home3</a>
              </li>
            </ul>
          </li>
    
          <li>
            <a href="#">About</a>
          </li>
          <li>
            <a href="#pageSubmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">Page</a>
            <ul class="collapse list-unstyled" id="pageSubmenu">
              <li>
                <a href="#">page1</a>
              </li>
              <li>
                <a href="#">page2</a>
              </li>
              <li>
                <a href="#">page3</a>
              </li>
            </ul>
          </li>
          <li>
            <a href="#">Services</a>
          </li>
          <li>
            <a href="#">Contact Us</a>
          </li>
        </ul>
    
      </nav>
    
      <div class="content">
        <nav class="navbar navbar-expand-lg navbar-light bg-light">
    
          <button type="button" id="sidebarCollapse" class="btn btn-info">
       			<i class="fa fa-align-justify"></i> <span>toggle</span>
       		</button>
    
          <!--<a class="navbar-brand" href="#">Navbar</a> -->
    
        </nav>
    
    
    
        <h2>Test 123 Test 123 Test 123 Test 123 Test 123 Test 123 4</h2>
    
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
          dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
          dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
        <div class="line"></div>
    
        <h2>Test 123 Test 123 Test 123 Test 123 Test 123 Test 123 4</h2>
    
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
          dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
          dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
        <div class="line"></div>
        <h2>Test 123 Test 123 Test 123 Test 123 Test 123 Test 123 4</h2>
    
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
          dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
          dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
        <div class="line"></div>
    
      </div>
    
    </div>

    我尝试了下面的代码,但它使切换按钮消失。

    #content {
        position: fixed;
        z-index: -1;
    }
    

    我想要我的侧边栏 this

    提前感谢。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Xenio Gracias    7 年前

    希望这有帮助。补充

    #sidebar {
        position: fixed;
        top:0;
        bottom:0;
        z-index:1;
    }
    

    并用下面的CSS添加覆盖

    .overlay{
      display:block;
      position:fixed;
      top:0;
      left:0;
      right:0;
      bottom:0;
      background-color:rgba(0,0,0,0.5)
    }
    

    $(document).ready(function() {
      $('#sidebarCollapse').on('click', function() {
        $('#sidebar').toggleClass('active');
        $('.overlay').toggle();
      });
    
      $('.overlay').click(function() {
        $('#sidebar').toggleClass('active');
        $('.overlay').toggle();
      });
    });
    @import "https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700";
    body{font-family: 'Poppins', sans-serif;
         background: #fafafa}
    p{font-family: 'Poppins', sans-serif;
      font-size: 1.1em;
    	font-weight: 300;
    	line-height: 1.7em;
    	color: #999;
    }
    a,
    a:hover,
    a:focus{
    	color: inherit;
    	text-decoration: none;
    	transition: all 0.3s;
    }
    .navbar{
    	padding: 15px 10px;
    	background: #fff;
    	border: none;
    	border-radius: 0;
    	margin-bottom: 40px;
    	box-shadow: 1px 1px 3px rgba(0,0,0,0.1);
    }
    
    .navbar-btn{
    	box-shadow: none;
    	outline: none!important;
    	border: none;
    }
    
    .line{
    	width: 100%;
    	height: 1px;
    	border-bottom: 1px dashed #ddd;
    }
    
    .wrapper {
        display: flex;
        width: 100%;
        align-items: stretch;
    }
    #sidebar {
        min-width: 250px;
        max-width: 250px;
        background: #7386D5;
        color: #fff;
        transition: all 0.3s;
        position: fixed;
        top:0;
        bottom:0;
        z-index:1;
    }
    #sidebar.active{
    	margin-left: -250px;
    }
    
    #sidebar .sidebar-header{
    	padding: 20px;
    	background: #6d7fcc;
    }
    #sidebar ul.components{
    	padding: 20px 0px;
    	border-bottom: 1px solid #47748b;
    }
    
    #sidebar ul p{
    	padding: 10px;
    	font-size: 1.1em;
    	display: block;
    }
    
    #sidebar ul li a{
    	padding: 10px;
    	font-size: 1.1em;
    	display: block;
    }
    #sidebar ul li a:hover {
        color: #7386D5;
        background: #fff;
    }
    
    #sidebar ul li.active>a,
    a[aria-expanded="true"] {
        color: #fff;
        background: #6d7fcc;
    }
    a[data-toggle="collapse"] {
        position: relative;
    }
    .dropdown-toggle::after {
        display: block;
        position: absolute;
        top: 50%;
        right: 20px;
        transform: translateY(-50%);
    }
    
    ul ul a {
        font-size: 0.9em !important;
        padding-left: 30px !important;
        background: #6d7fcc;
    }
    
    ul.CTAs {
        padding: 20px;
    }
    
    ul.CTAs a {
        text-align: center;
        font-size: 0.9em !important;
        display: block;
        border-radius: 5px;
        margin-bottom: 5px;
    }
    a.download{
    	background: #fff;
    	color: #7386D5;
    }
    a.article,
    a.article:hover {
        background: #6d7fcc !important;
        color: #fff !important;
    }
    
    #content {
        width: 100%;
        padding: 20px;
        min-height: 100vh;
        transition: all 0.3s;
    }
    
    @media(maz-width:768px){
    	#sidebar{margin-left: -250px;}
    	#sidebar.active{
    		margin-left: 0px;
    	}
    	#sidebarCollapse span{
    		display: none;
    	}
    }
    
    .overlay{
      display:block;
      position:fixed;
      top:0;
      left:0;
      right:0;
      bottom:0;
      background-color:rgba(0,0,0,0.5)
    }
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet" />
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
    
    <div class="wrapper">
      <nav id="sidebar">
        <div class="sidebar-header">
          <h3>BOOTSTRAP SIDEBAR</h3>
        </div>
    
    
        <ul class="list-unstyled components">
          <p>Dummy Heading</p>
          <li class="active">
            <a href="#homeSubmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">Home</a>
            <ul class="collapse list-unstyled" id="homeSubmenu">
              <li>
                <a href="#">home1</a>
              </li>
              <li>
                <a href="#">home2</a>
              </li>
              <li>
                <a href="#">home3</a>
              </li>
            </ul>
          </li>
    
          <li>
            <a href="#">About</a>
          </li>
          <li>
            <a href="#pageSubmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">Page</a>
            <ul class="collapse list-unstyled" id="pageSubmenu">
              <li>
                <a href="#">page1</a>
              </li>
              <li>
                <a href="#">page2</a>
              </li>
              <li>
                <a href="#">page3</a>
              </li>
            </ul>
          </li>
          <li>
            <a href="#">Services</a>
          </li>
          <li>
            <a href="#">Contact Us</a>
          </li>
        </ul>
    
      </nav>
    
      <div class="content">
        <nav class="navbar navbar-expand-lg navbar-light bg-light">
    
          <button type="button" id="sidebarCollapse" class="btn btn-info">
       			<i class="fa fa-align-justify"></i> <span>toggle</span>
       		</button>
    
          <!--<a class="navbar-brand" href="#">Navbar</a> -->
    
        </nav>
    
    
    
        <h2>Test 123 Test 123 Test 123 Test 123 Test 123 Test 123 4</h2>
    
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
          dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
          dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
        <div class="line"></div>
    
        <h2>Test 123 Test 123 Test 123 Test 123 Test 123 Test 123 4</h2>
    
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
          dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
          dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
        <div class="line"></div>
        <h2>Test 123 Test 123 Test 123 Test 123 Test 123 Test 123 4</h2>
    
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
          dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
          dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
      </div>
    </div>
    <div class="overlay"></div>