鱼C论坛

 找回密码
 立即注册
查看: 521|回复: 1

[已解决]overflow属性没有生效

[复制链接]
发表于 2024-4-25 21:15:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我给box设置了固定的高度,将溢出盒子的内容设置成了隐藏,但是box的高度仍然根据内容扩大了,用浏览器开发者工具查看后发现box的高度没有生效
  1. body {
  2.     display: grid;
  3.     grid-template-columns: 1fr 3fr;
  4.     /* 定义两列,第一列占据1份空间,第二列占据2份空间 */
  5.     grid-template-rows: auto 1fr auto;
  6.     /* 定义三行,第一行和最后一行高度自适应,第二行占据剩余空间 */
  7.     grid-template-areas: "header header" "sidebar main" "footer footer";
  8.     /* 定义每个区域的名称 */
  9.     height: 100vh;
  10.     /* 设置整个布局的高度为视口高度 */
  11.     margin: 0;
  12.     padding: 0;
  13.     box-sizing: border-box;
  14. }

  15. header {
  16.     grid-area: header;
  17.     /* 将头部区域映射到Grid布局中的header区域 */
  18.     background-color: #00ADB5;
  19.     padding: 20px;
  20. }
  21. header a{
  22.     text-decoration: none;
  23.     color: #f0f0f0;
  24. }
  25. header a:hover{
  26.     color: cornflowerblue;
  27.     font-weight: 600;
  28. }
  29. nav ul {
  30.     display: flex;
  31.     list-style: none;
  32.     justify-content: center;
  33. }

  34. nav ul li {
  35.     margin-right: 20px;
  36.     color: whitesmoke;
  37. }

  38. nav ul li:hover {
  39.     color: orangered;
  40.     font-weight: 600;
  41.     cursor: pointer;
  42. }

  43. main {
  44.     grid-area: main;
  45.     /* 将主体区域映射到Grid布局中的main区域 */
  46.     background-color: #EEEEEE;
  47.     padding: 20px;
  48.     display: grid;
  49.     grid-template-columns: 1fr;
  50.     gap: 10px;
  51. }

  52. main .box {
  53.     min-width: 200px;
  54.     /*height: 100px;*/
  55.     padding: 10px;
  56.     background-color: whitesmoke;
  57.     box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
  58. }

  59. aside {
  60.     grid-area: sidebar;
  61.     /* 将侧边栏区域映射到Grid布局中的sidebar区域 */
  62.     background-color: #f0f0f0;
  63.     padding: 20px;
  64.     border-radius: 5px;
  65.     /* 设置边框圆角 */
  66.     box-shadow: rgba(50, 50, 93, 0.25) 0px 50px 100px -20px, rgba(0, 0, 0, 0.3) 0px 30px 60px -30px, rgba(10, 37, 64, 0.35) 0px -2px 6px 0px inset;
  67. }
  68. aside a{
  69.     text-decoration: none;
  70.     color: black;
  71. }
  72. aside a:hover{
  73.     color: cornflowerblue;
  74. }
  75. aside ul {
  76.     list-style-type: none;
  77.     /* 去除列表样式 */
  78.     padding: 0;
  79. }


  80. /* 侧边栏列表项样式 */

  81. aside ul li {
  82.     margin-bottom: 10px;
  83.     /* 设置列表项间距 */
  84. }


  85. /* 侧边栏欢迎信息样式 */

  86. aside p {
  87.     font-weight: 600;
  88.     /* 设置粗体字 */
  89.     font-size: 1.25rem;
  90.     margin-bottom: 15px;
  91.     /* 设置段落底部间距 */
  92. }

  93. footer {
  94.     grid-area: footer;
  95.     /* 将底部区域映射到Grid布局中的footer区域 */
  96.     background-color: #393E46;
  97.     color: whitesmoke;
  98.     padding: 20px;
  99.     text-align: center;
  100. }
复制代码
  1. <%@ page import="java.util.List" %>
  2. <%@ page import="edu.zjku.bean.Blog" %>
  3. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  4. <html>
  5. <head>
  6.     <title>看博客</title>
  7.     <link rel="stylesheet" href="style/public.css">
  8.     <script src="https://unpkg.zhimg.com/axios/dist/axios.min.js"></script>
  9.     <script src="script/detail.js" async/>
  10.     <style>
  11.         .box{
  12.             height: 100px;
  13.             overflow: hidden;
  14.         }
  15.     </style>
  16. </head>
  17. <body>
  18. <jsp:include page="header.jsp"/>
  19. <main>
  20.     <%
  21.         //从会话域获取所有博客
  22.         List<Blog> blogs = (List<Blog>) session.getAttribute("blogs");
  23.         //循环显示所有博客
  24.         for (Blog blog : blogs) {%>
  25.     <div class="box" data-pid="<%=blog.getPid()%>">
  26.         <p><%=blog.getText()%></p>
  27.     </div>
  28.     <%}%>
  29. </main>
  30. <jsp:include page="aside.jsp"/>
  31. <jsp:include page="footer.jsp"/>
  32. </body>
  33. </html>
复制代码
最佳答案
2024-4-25 21:16:48
在你的代码中,你给box设置了固定的高度为100px,并且将内容溢出时的处理方式设置为隐藏(hidden)。然而,这个设置并没有生效的原因是因为你在box的父容器main上也使用了Grid布局,并且设置了grid-template-rows为1fr。这意味着main将占据剩余空间,并填充box的高度限制。

要解决这个问题,你可以尝试以下两种方法:

方法一:使用max-height替代height属性

将main .box的height属性改为max-height,并设置其值为100px。这样,即使main的高度会随内容扩大而增加,但box的高度仍然会限制在100px。

例如:

.main .box {
    max-height: 100px;
    overflow: hidden;
}

方法二:使用CSS的position属性

将main .box的position属性设置为relative,并使用top和bottom属性来设置box的高度。

例如:

.main .box {
    position: relative;
    top: 0;
    bottom: 0;
    height: 100px;
    overflow: hidden;
}

这两种方法都可以实现你想要的效果,选择其中一种即可。希望能对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-4-25 21:16:48 | 显示全部楼层    本楼为最佳答案   
在你的代码中,你给box设置了固定的高度为100px,并且将内容溢出时的处理方式设置为隐藏(hidden)。然而,这个设置并没有生效的原因是因为你在box的父容器main上也使用了Grid布局,并且设置了grid-template-rows为1fr。这意味着main将占据剩余空间,并填充box的高度限制。

要解决这个问题,你可以尝试以下两种方法:

方法一:使用max-height替代height属性

将main .box的height属性改为max-height,并设置其值为100px。这样,即使main的高度会随内容扩大而增加,但box的高度仍然会限制在100px。

例如:

.main .box {
    max-height: 100px;
    overflow: hidden;
}

方法二:使用CSS的position属性

将main .box的position属性设置为relative,并使用top和bottom属性来设置box的高度。

例如:

.main .box {
    position: relative;
    top: 0;
    bottom: 0;
    height: 100px;
    overflow: hidden;
}

这两种方法都可以实现你想要的效果,选择其中一种即可。希望能对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-4 18:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表