巧用style的display隐藏对象

本文介绍了一个利用CSS的display属性来实现文件上传框的隐藏与显示的方法,并详细解释了display属性的各种取值及其作用。
部署运行你感兴趣的模型镜像

发现CSS一句话很经典:style="display: none",加在哪就能就隐藏哪,做了一个隐藏的上传文件框,点击本机上传或checkbox后出现,再点击又将其隐藏。实现代码如下:

 

<script language="JavaScript">
function fjian()
{
if(document.getElementById('fj').style.display=="none")
 {
 fj.style.display=""
 document.getElementById('sss').checked=true;
 document.getElementById('sss').value="是";
 }
else
 {
 document.getElementById('fj').style.display="none";
 document.getElementById('sss').checked=false;
 document.getElementById('sss').value="否";
 }

}
</script>
<body>
 <table border="1">
  <tr>
   <td>
    <input name="sss" id="sss" type="checkbox" onClick="fjian()">
    <A href="javascript:fjian()">本机上传</a>
   </td>

   <td></td>

  </tr>
  <tr style="display: none" id="fj">
   <td align="right" nowrap>
    上传附件
   </td>
   <td valign="baseline" style="padding-left: 5px">
    <input name="fujian2" id="fil" type="file" class="inputitem"
      size="40" maxlength="100">
  </tr>
 </table>
</body>

 

上网又搜了一些资料:

 

display : block | none | inline | compact | marker | inline-table | list-item | run-in | table | table-caption | table-cell | table-column | table-column-group | table-footer-group | table-header-group | table-row | table-row-group
取值:
block :  CSS1 块对象的默认值。将对象强制作为块对象呈递,为对象之后添加新行
none :  CSS1 隐藏对象。与 visibility 属性的hidden值不同,其不为被隐藏的对象保留其物理空间
inline :  CSS1 内联对象的默认值。将对象强制作为内联对象呈递,从对象中删除行
inline-block :  IE5.5 将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内
compact :  CSS2 未支持。分配对象为块对象或基于内容之上的内联对象
marker :  CSS2 未支持。指定内容在容器对象之前或之后。要使用此参数,对象必须和 :after 及 :before 伪元素一起使用
inline-table :  CSS2 未支持。将表格显示为无前后换行的内联对象或内联容器
list-item :  CSS2 将块对象指定为列表项目。并可以添加可选项目标志
run-in :  CSS2 未支持。分配对象为块对象或基于内容之上的内联对象
table :  CSS2 未支持。将对象作为块元素级的表格显示
table-caption :  CSS2 未支持。将对象作为表格标题显示
table-cell :  CSS2 未支持。将对象作为表格单元格显示
table-column :  CSS2 未支持。将对象作为表格列显示
table-column-group :  CSS2 未支持。将对象作为表格列组显示
table-header-group :  CSS2 将对象作为表格标题组显示
table-footer-group :  CSS2 将对象作为表格脚注组显示
table-row :  CSS2 未支持。将对象作为表格行显示
table-row-group :  CSS2 未支持。将对象作为表格行组显示

说明:
设置或检索对象是否及如何显示。
对于下列元素来说,此属性的默认值为 block :
ADDRESS QUOTE BODY XMP CENTER COL COLGROUP DD DIR DIV DL DT FIELDSET FORM Hn HR IFRAME LEGEND LISTING MARQUEE MENU OL P PLAINTEXT PRE TABLE TD TH TR UL

对于下列元素来说,此属性的默认值为 none :
BR FRAME nextID TBODY TFOOT THEAD

对于下列元素来说,此属性的默认值为 list-item :
LI

其他元素默认值都是 inline 。
在IE6.0以前的版本中, LI 对象的默认值为 block 。
在IE4.0中, block , inline , list-item 值不被支持。但是对象仍然会被呈递。
在IE5.0中开始支持 block 和 inline 。
在IE5.5中开始支持 inline-block 。你可以使用 inline-block 使对象获得布局而无需指定确切的高( height )和宽( width )。
在IE6.0中开始支持 list-item 。
所有可视的文档对象都是块对象(block element)或者内联对象(inline element)。例如, div 是一个块对象。 span 是一个内联对象。块对象的特征是从新的一行开始且能包含其他块对象和内联对象。内联对象被呈递时不会从新行开始,能够包含其他内联对象和数据。
改变此属性值对其周围内容布局的影响可能是:
在属性值设为 block 的对象后面添加新行。
从属性值设为 inline 的对象中删除一行。
隐藏属性值设为 none 的对象并释放其在文档中的物理空间。
table-header-group 和 table-footer-group 属性值可用来指定当表格( table )跨越了多页时, tHead 和 tFoot 对象的内容在每一页都显示。
此属性对于 currentStyle 对象而言是只读的。对于其他对象而言是可读写的。
对应的脚本特性为display。

您可能感兴趣的与本文相关的镜像

Yolo-v8.3

Yolo-v8.3

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

### 动态设置 `display` 属性的方法 在前端开发中,可以通过多种方式利用三元运算符动态控制元素的显示状态。以下是几种常见的方法: #### 方法一:使用 Vue.js 的模板语法 如果是在 Vue.js 中操作样式,可以借助其内置的 `:style` 或 `v-bind:style` 指令来实现动态样式的绑定。具体来说,可以在模板中直接嵌套三元表达式[^3]。 ```html <div :style="[isVisible ? { display: 'block' } : { display: 'none' }]"> 我是一个可隐藏的元素 </div> ``` 在此示例中,`:style` 使用了一个对象数组形式,其中包含了基于条件 `isVisible` 的不同样式配置。 --- #### 方法二:CSS-in-JS 库 (Emotion) 当采用 CSS-in-JS 方案时(如 Emotion),可以直接将三元运算符嵌入到 JavaScript 表达式中,并返回对应的样式对象[^2]。 ```javascript import styled from '@emotion/styled'; const DynamicDiv = styled.div((props) => ({ display: props.isVisible ? 'block' : 'none', })); // 渲染组件时传递 isVisible 属性 <DynamicDiv isVisible={true}>我是另一个可隐藏的元素</DynamicDiv>; ``` 此代码片段展示了如何通过属性 `isVisible` 控制 `<DynamicDiv>` 的显示行为。 --- #### 方法三:纯 HTML 和内联样式 对于不依赖框架的情况,也可以直接在 HTML 文件中编写带有逻辑判断的内联样式[^1]。 ```html <div style="display: {{ condition ? 'block' : 'none' }};"> 这里是简单的例子 </div> ``` 注意,在实际项目中通常不会推荐这种方式,因为它会降低代码的可维护性和分离度。 --- #### 方法四:背景图片配合伪类选择器 虽然题目并未提及背景图的应用场景,但如果涉及复杂布局调整,则可能需要用到更高级的技术栈[^4]。例如下面的例子演示了如何结合媒体查询改变默认外观: ```css @media screen and (max-width: 768px){ .responsive-element { background-image: url('fallback.jpg'); display: none; } } ``` 尽管这不是严格意义上的“三元运算”,但它体现了响应式设计原则下灵活切换视觉效果的能力。 --- ### 总结 综上所述,无论是现代框架还是传统技术都可以满足需求——只需合理运用各自特性即可达成目标!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值