您的位置:

CSS Display Property: 控制HTML元素的显示与隐藏

一、CSS Display属性的介绍

CSS Display属性是用来控制HTML元素在页面上的显示与隐藏,是所有CSS属性中最常使用的属性之一。当我们设置一个元素的CSS Display属性为none,那么这个元素就会在页面上消失,当我们将其设置为block、inline、inline-block等属性时,该元素就会出现在页面上。下面我们将会对Display属性的常见取值进行介绍。

二、CSS Display属性的取值及其介绍

1、block

/*HTML*/

<div id="block-example">
    <p>这是一个例子</p>
</div>

/*CSS*/

#block-example{
    display:block;
    width:100px;
    height:50px;
    background-color:red;
}

block表示将整个元素显示成块级元素,块级元素会独占一行,并且会在前后添加 \
标签。我们通过上面的代码可以看到,设置了display:block属性的div元素,会显示成一个宽度为100px、高度为50px的红色框。

2、inline

/*HTML*/

<span id="inline-example">这是一个例子</span>

/*CSS*/

#inline-example{
    display:inline;
    background-color:red;
}

inline表示将元素显示成行内元素,行内元素不会在前后添加 \
标签,而是排在一行内,直到一行排不下才会自动换行。我们通过上面的代码可以看到,将display属性设置为inline的span元素会显示成一个红色的文字,而且不会独占一行。

3、inline-block

/*HTML*/

<div id="inline-block-example">
    <p>这是一个例子</p>
</div>

/*CSS*/

#inline-block-example{
    display:inline-block;
    width:100px;
    height:50px;
    background-color:red;
}

inline-block结合了上面两种属性的特点,既可以像inline一样排在一行内,也可以像block一样设置宽高等属性。我们通过上面的代码可以看到,将display属性设置为inline-block的div元素会显示成一个宽度为100px、高度为50px的红色框,并且不会独占一行。

4、none

/*HTML*/

<div id="none-example">
    <p>这是一个例子</p>
</div>

/*CSS*/

#none-example{
    display:none;
    width:100px;
    height:50px;
    background-color:red;
}

none表示让元素在页面中消失不见,与visibility:hidden属性不同的是,使用display:none属性的元素不仅不会显示,也不会占据页面中的空间。我们通过上面的代码可以看到,设置了display:none属性的div元素不会在页面中显示,就算设置了宽高和背景颜色也没有用。

三、使用CSS Display属性的注意事项

1、inline元素和inline-block元素的间距问题

我们在页面上经常会将多个行内元素或行内块级元素排在一起,但是如果不做特定的设置,它们之间会存在一定的间距,给布局造成一定的影响。这是因为在HTML文档中,多个行内元素排列在一起时,它们之间会有一个空格,这个空格会被解析成一个字符,所以页面上它们之间就会有一定的间距。解决这个问题可以使用以下两种方式:

/*方法1:去除空格*/

<div id="inline-example1"><p>这是一个例子1</p></div><div id="inline-example2"><p>这是一个例子2</p></div>

#inline-example1,#inline-example2{
    display:inline-block;
}

/*方法2:设置font-size:0*/

<div id="inline-example1"><p>这是一个例子1</p></div><div id="inline-example2"><p>这是一个例子2</p></div>

#inline-example1,#inline-example2{
    display:inline-block;
    font-size:0;
}

#inline-example1 p,#inline-example2 p{
    font-size:16px;
}

第一种方式比较简单,就是将多个inline元素挨着放,不要在它们之间添加空格。第二种方式是将其父元素的字体大小设置为0,然后在内部的元素恢复正常字体大小。

2、使用none属性可以实现元素的延迟加载

CSS Display属性的一个比较巧妙的应用是实现页面的延迟加载。在页面中,我们可以先将某些元素的Display属性设置为none,这样页面不会立即加载这部分内容,直到用户触发某些事件(例如点击某个按钮),我们再将这部分内容的Display属性设置为block,实现延迟加载的效果。这种方式可以有效减轻页面的加载压力,提高用户的体验效果。

3、不要滥用none属性

虽然使用CSS Display属性的none取值可以方便地隐藏/显示某些元素,但是不要滥用它。例如,如果我们需要暂时隐藏某个元素,不要将其Display属性设置为none,可以将其封装到一个父元素内部,然后将这个父元素的Display属性设置为none。这样做的好处是我们后续需要显示这个元素时,不用重新设定其宽高等属性,可以提高Web页面的运行效率,优化用户体验。

CSS Display Property: 控制HTML元素

2023-05-12
CSS隐藏元素

2023-05-18
display显示与隐藏

2023-05-23
layui-hide:控制元素的显示和隐藏

2023-05-19
jQuery隐藏元素详解

2023-05-19
提高用户体验的一种控件显示与隐藏的方法

一、小标题:使用JavaScript实现控件的显示与隐藏 在网页开发中,控件的显示与隐藏是一个非常常见的需求,而使用JavaScript可以很方便地实现此功能。JavaScript是一种脚本语言,通过

2023-12-08
slidedown:一个让元素隐藏的工具

2023-05-18
Vue控制元素的显示和隐藏

2023-05-18
CSS隐藏滚动条

2023-05-19
CSS隐藏文字

2023-05-20
CSS元素隐藏的多种方式

2023-05-20
CSS超出隐藏省略号详解

2023-05-18
Layui 隐藏div详解

2023-05-16
如何实现CSS文本两行超出隐藏?

2023-05-21
CSS只显示一行

2023-05-23
when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${item.id} [in template "article/detail/index.ftl" at line 48, column 106] ---- Java stack trace (for programmers): ---- freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:481) at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:401) at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:370) at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:104) at freemarker.core.DollarVariable.accept(DollarVariable.java:63) at freemarker.core.Environment.visit(Environment.java:371) at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321) at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271) at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244) at freemarker.core.Environment.visitIteratorBlock(Environment.java:645) at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94) at freemarker.core.Environment.visit(Environment.java:335) at freemarker.core.Environment.visit(Environment.java:341) at freemarker.core.Environment.visit(Environment.java:341) at freemarker.core.Environment.process(Environment.java:314) at freemarker.template.Template.process(Template.java:383) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:332) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:266) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:220) at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:181) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1431) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1167) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1106) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at com.software.filter.HttpSpiderIdentifyFilter.doFilter(HttpSpiderIdentifyFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at java.base/java.lang.VirtualThread.run(VirtualThread.java:309)