gpt4 book ai didi

javascript - 顺风 CSS 导航栏

转载 作者:行者123 更新时间:2023-11-28 01:27:50 26 4
gpt4 key购买 nike

无论如何,我无法让这个导航栏正确折叠。我需要将导航栏更改为响应模式下的 flex,但它目前无法正常工作。

HTML:

 <nav class="flex items-center justify-between flex-wrap bg-blue-darkest p-6 z-10">
<div class="flex items-center flex-no-shrink text-white mr-6">
<svg class="fill-current h-8 w-8 mr-2" width="54" height="54" viewBox="0 0 54 54" xmlns="http://www.w3.org/2000/svg">
<path d="M13.5 22.1c1.8-7.2 6.3-10.8 13.5-10.8 10.8 0 12.15 8.1 17.55 9.45 3.6.9 6.75-.45 9.45-4.05-1.8 7.2-6.3 10.8-13.5 10.8-10.8 0-12.15-8.1-17.55-9.45-3.6-.9-6.75.45-9.45 4.05zM0 38.3c1.8-7.2 6.3-10.8 13.5-10.8 10.8 0 12.15 8.1 17.55 9.45 3.6.9 6.75-.45 9.45-4.05-1.8 7.2-6.3 10.8-13.5 10.8-10.8 0-12.15-8.1-17.55-9.45-3.6-.9-6.75.45-9.45 4.05z"
/>
</svg>
<span class="font-semibold text-xl tracking-tight">Tailwind CSS</span>
</div>
<div class="block lg:hidden">
<button class="flex items-center px-3 py-2 border rounded text-white border-white hover:text-blue-darkest hover:bg-white"
onclick="myFunction()">
<svg class="fill-current h-3 w-3" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<title>Menu</title>
<path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z" />
</svg>
</button>
</div>
<div class="w-full hidden lg:block flex-grow lg:flex lg:items-center lg:w-auto" id="nav">
<div class="text-sm lg:flex-grow">
<a href="#responsive-header" class="block mt-4 lg:inline-block lg:mt-0 text-teal-lighter hover:text-white mr-4">
Docs
</a>
<a href="#responsive-header" class="block mt-4 lg:inline-block lg:mt-0 text-teal-lighter hover:text-white mr-4">
Examples
</a>
<a href="#responsive-header" class="block mt-4 lg:inline-block lg:mt-0 text-teal-lighter hover:text-white">
Blog
</a>
</div>
<div>
<a href="#" class="inline-block text-sm px-4 py-2 leading-none border rounded text-white border-white hover:border-transparent hover:text-teal hover:bg-white mt-4 lg:mt-0">Download</a>
</div>
</div>
</nav>

JavaScript 代码:

function myFunction() {
var x = document.getElementById("nav");
if (x.className === "hidden") {
x.classList.toggle("hidden");
} else {
console.log("nav");
x.className = "hidden";
}
}

我该如何解决这个问题?

最佳答案

完全可以在显示元素上使用 Tailwind CSS 的响应式修饰符。

您可以将 nav 元素的类而不仅仅是 flex 更改为类似 md:flex block 或类似的东西。当然,您需要在实际站点上调整正确的显示值和响应实用程序,方法是进行一些试验。

来自 Tailwind CSS wiki 的引述:

To control the display property of an element at a specific breakpoint, add a {screen}: prefix to any existing display utility class. For example, use md:inline-flex to apply the inline-flex utility at only medium screen sizes and above.

您可以阅读更多 in the Tailwind CSS wiki .

除此之外,还有一个建议:您可以将 myFunction 缩减为仅四行代码。目前,您的 if-else 语句只是在执行 classList.toggle 已经执行的操作,但是是手动执行的。如果进行检查是因为您想检查您是否获得了正确的元素,那么请注意您应该永远、永远不要在一个页面上使用具有相同 ID 的多个元素

function myFunction() {
var x = document.getElementById("nav");
x.classList.toggle("hidden");
}

关于javascript - 顺风 CSS 导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51145024/

26 4 0