javascript 如何让我的粘性导航栏在Chakra-UI中保持在前面

lmvvr0a8  于 2024-01-05  发布在  Java
关注(0)|答案(2)|浏览(103)

我正在使用Chakra-UI为我的NextJS项目创建一个UI,并且正在努力让导航栏正确工作。它和移动的导航菜单一样被正确修复,但是菜单位于背景div的前面,但是在英雄div的后面(Flex的组件设置为blackAlpha)
我如何才能使菜单只坐在前面?使用沼泽标准CSS我只是使用z索引,如果我有这样的问题,但它一直没有为我工作。
HomePage.js

  1. import React from 'react';
  2. import Hero from './Hero/Hero';
  3. import Header from './Header/Header';
  4. import Features from './Features/Features';
  5. const HomePage = () => {
  6. return (
  7. <>
  8. <Header/>
  9. <Hero/>
  10. <Features/>
  11. </>
  12. );
  13. }
  14. export default HomePage

字符串
我的Header.js(去除绒毛)

  1. const Header = () => {
  2. return (
  3. // Header/TopNav Container
  4. <chakra.header
  5. ref={ref}
  6. shadow={y > height ? "sm" : undefined}
  7. transition="box-shadow 0.2s"
  8. bg={bg}
  9. borderTop="6px solid"
  10. borderTopColor="brand.400"
  11. w="full"
  12. overflowY="hidden"
  13. borderBottomWidth={2}
  14. borderBottomColor={useColorModeValue("gray.200", "gray.900")}
  15. position="fixed"
  16. top={0}
  17. >
  18. <chakra.div h="4.5rem" mx="auto" maxW="1200px" >
  19. {DesktopNavContent}
  20. {MobileNavContent}
  21. </chakra.div>
  22. </chakra.header>
  23. );
  24. }


我的英雄

  1. const Hero = () => {
  2. const bg = useColorModeValue("white", "gray.800");
  3. return(
  4. <Box
  5. w="full"
  6. h="container.md"
  7. backgroundImage="url(https://images.unsplash.com/photo-1504384308090-c894fdcc538d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1050&q=80)"
  8. bgPos="center"
  9. bgSize="cover"
  10. >
  11. <Flex
  12. align="center"
  13. pos="relative"
  14. justify="center"
  15. boxSize="full"
  16. bg="blackAlpha.700"
  17. >
  18. <Stack textAlign="center" alignItems="center" spacing={6}>
  19. <Heading
  20. fontSize={["3xl", , "4xl"]}
  21. fontWeight="semibold"
  22. color="white"
  23. >
  24. Pay once, store forever....</Heading>
  25. <Heading
  26. fontSize={["3xl", , "4xl"]}
  27. fontWeight="semibold"
  28. color="blue.400"
  29. textTransform="uppercase"
  30. >
  31. ARk Permanent Storage
  32. </Heading>
  33. <Button
  34. colorScheme="brand"
  35. textTransform="uppercase"
  36. w="fit-content"
  37. class="px-4 py-2 mt-4 text-sm font-medium text-white uppercase transition-colors duration-200 transform bg-blue-600 rounded-md hover:bg-blue-500 focus:outline-none focus:bg-blue-500"
  38. >
  39. Start project
  40. </Button>
  41. </Stack>
  42. </Flex>
  43. </Box>
  44. )
  45. }

zxlwwiss

zxlwwiss1#

设法做到这一点,通过添加位置:'静态'到有问题的Flex,如图所示。

  1. <Flex
  2. align="center"
  3. pos="relative"
  4. justify="center"
  5. boxSize="full"
  6. bg="blackAlpha.700"
  7. position="static"
  8. >

字符串

a2mppw5e

a2mppw5e2#

  1. <Flex as={'header'}>
  2. {content}
  3. </Flex>

字符串

相关问题