Bootstrap 5 offcanvas 无法处理锚点内的图像或图标
Bootstrap 5 offcanvas is not working with images or icons inside the anchor
您可能会认为它是重复的,但我向您保证,我已经调查了几个关于 stakeoverflow 的问题,但没有找到类似的问题。
我已经实现了 Bootstrap 5 个 offcanvas,但它有一个奇怪的问题。
当您触发其中包含文本的按钮 (anchor/button) 时,它会完美运行。但是当你在其中放入图像或图标 svg 时。它停止工作。
这是我的代码:
我的应用程序的顶部菜单
<div class="w-100 border fixed-top py-2">
<a class="btn float-start d-inline offcanvas_btn" data-bs-toggle="offcanvas" href="#sidebar_left" role="button" aria-controls="sidebar_left" >
<img src="https://www.bylde.com/assets/img/bylde-logo-small.webp?v=B01234567" class="img-fluid hlogo rounded">
</a>
<a class="btn float-end d-inline" data-bs-toggle="offcanvas" href="#sidebar_right" role="button" aria-controls="sidebar_right">
Menu
</a>
<div class="clearfix"></div>
</div>
这是边栏代码:
<div class="offcanvas offcanvas-start" tabindex="-1" id="sidebar_left" aria-labelledby="offcanvasExampleLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasExampleLabel">Offcanvas</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<div>
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
</div>
<div class="dropdown mt-3">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown">
Dropdown button
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</div>
</div>
</div>
根据 bootstrap 文档 (offcanvas)
实现非常简单直接
复制步骤:
- 使用您的移动设备
- 去考试URL
- 点击菜单(右上角)
- 点击左上角的标志
看看区别。
这是 beta-3 中的一个known issue,将在 5.0.0 版本中解决。
解决方法是在内部元素上使用 data-bs-toggle="offcanvas"
...
<a class="btn float-start d-inline offcanvas_btn" href="#sidebar_left" role="button" aria-controls="sidebar_left">
<img src="https://www.bylde.com/assets/img/bylde-logo-small.webp?v=B01234567" style="width: 30px" data-bs-target="#sidebar_left" data-bs-toggle="offcanvas" class="img-fluid hlogo rounded">
</a>
我在锚点内有一个 span 和 svg。我在所有标签 'a'、'span' 和 'svg' 中使用了 data-bs-target="#offcanvasExample" data-bs-toggle="offcanvas"。
所以当我点击 anchor svg 或 span 中的任何地方时,它就起作用了。
<li class='nav-item'>
<a class='nav-link' data-bs-toggle='offcanvas' data-bs-target='#offcanvasExample' href='#offcanvasExample' role='button' aria-controls='offcanvasExample' role='button'>
<svg data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" style="fill:rgba(0, 0, 0, 1);transform:;-ms-filter:"><path d="M7.5 6.5C7.5 8.981 9.519 11 12 11s4.5-2.019 4.5-4.5S14.481 2 12 2 7.5 4.019 7.5 6.5zM20 21h1v-1c0-3.859-3.141-7-7-7h-4c-3.86 0-7 3.141-7 7v1h1 1 14H20z"></path></svg>
<span data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" class="nav-label">Account</span>
</a>
</li>
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasExample" aria-labelledby="offcanvasExampleLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasExampleLabel">Offcanvas</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<div class="mt-3">
<a class='' href='fav_add'>Favourite</a>";
<a class='' href='chat_lst'>Chat"</a>
<a class='' href='logout'>Logout</a>";
</div>
</div>
</div>
您可能会认为它是重复的,但我向您保证,我已经调查了几个关于 stakeoverflow 的问题,但没有找到类似的问题。
我已经实现了 Bootstrap 5 个 offcanvas,但它有一个奇怪的问题。
当您触发其中包含文本的按钮 (anchor/button) 时,它会完美运行。但是当你在其中放入图像或图标 svg 时。它停止工作。
这是我的代码:
我的应用程序的顶部菜单
<div class="w-100 border fixed-top py-2">
<a class="btn float-start d-inline offcanvas_btn" data-bs-toggle="offcanvas" href="#sidebar_left" role="button" aria-controls="sidebar_left" >
<img src="https://www.bylde.com/assets/img/bylde-logo-small.webp?v=B01234567" class="img-fluid hlogo rounded">
</a>
<a class="btn float-end d-inline" data-bs-toggle="offcanvas" href="#sidebar_right" role="button" aria-controls="sidebar_right">
Menu
</a>
<div class="clearfix"></div>
</div>
这是边栏代码:
<div class="offcanvas offcanvas-start" tabindex="-1" id="sidebar_left" aria-labelledby="offcanvasExampleLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasExampleLabel">Offcanvas</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<div>
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
</div>
<div class="dropdown mt-3">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown">
Dropdown button
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</div>
</div>
</div>
根据 bootstrap 文档 (offcanvas)
实现非常简单直接复制步骤:
- 使用您的移动设备
- 去考试URL
- 点击菜单(右上角)
- 点击左上角的标志
看看区别。
这是 beta-3 中的一个known issue,将在 5.0.0 版本中解决。
解决方法是在内部元素上使用 data-bs-toggle="offcanvas"
...
<a class="btn float-start d-inline offcanvas_btn" href="#sidebar_left" role="button" aria-controls="sidebar_left">
<img src="https://www.bylde.com/assets/img/bylde-logo-small.webp?v=B01234567" style="width: 30px" data-bs-target="#sidebar_left" data-bs-toggle="offcanvas" class="img-fluid hlogo rounded">
</a>
我在锚点内有一个 span 和 svg。我在所有标签 'a'、'span' 和 'svg' 中使用了 data-bs-target="#offcanvasExample" data-bs-toggle="offcanvas"。 所以当我点击 anchor svg 或 span 中的任何地方时,它就起作用了。
<li class='nav-item'>
<a class='nav-link' data-bs-toggle='offcanvas' data-bs-target='#offcanvasExample' href='#offcanvasExample' role='button' aria-controls='offcanvasExample' role='button'>
<svg data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" style="fill:rgba(0, 0, 0, 1);transform:;-ms-filter:"><path d="M7.5 6.5C7.5 8.981 9.519 11 12 11s4.5-2.019 4.5-4.5S14.481 2 12 2 7.5 4.019 7.5 6.5zM20 21h1v-1c0-3.859-3.141-7-7-7h-4c-3.86 0-7 3.141-7 7v1h1 1 14H20z"></path></svg>
<span data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" class="nav-label">Account</span>
</a>
</li>
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasExample" aria-labelledby="offcanvasExampleLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasExampleLabel">Offcanvas</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<div class="mt-3">
<a class='' href='fav_add'>Favourite</a>";
<a class='' href='chat_lst'>Chat"</a>
<a class='' href='logout'>Logout</a>";
</div>
</div>
</div>