两分钟吃透表格(table)

表格设计

表格常用属性如下:border-collapse;caption-side;border-spacing;table;tr;td;th;caption;thead;tbody;tfoot;

1.创建语义化的表格结构

我们在HTML中,讲到和表格相关的标签有如下几个:table、tr、td/th

实际上, 除了这几个之外,还有一些相应的标签。
caption:表格标题,实际上使用并不是很多
thead:表头部分
tbody:表主体部分
tfoot:表尾部分

在行的方向上,我们可以将这些行分成不同的组,有三种:thead、tbody、tfoot
如果没有增加上述中的任意一个,默认所有的tr都会在tbody中。
我们可以人为的对tr进行分组:
有了这些标签,可以给我们带来两大好处:
我们的html更加具备语义化
我们在写CSS的时候,可以节省很多的class属性。直接使用元素选择器即可。

  • 一般而言,thead和tbody使用比较多,而tfoot使用相对较少。
2.表格相关css属性

和表格有关的新的属性:

border-collapse:重点掌握
caption-side
border-spacing

默认情况下,表格的边框构建方式是分隔式(分离式),其特点如下:
table本身有一个独立的边框每一个单元格(td/th)也都具备自己独立的边框
实际上,在所有的网站中,都需要去更改表格边框的构建方式。
我们希望单元格之间能够共用其中的某一个边框。

在css中,我们可以使用border-collapse,来设置。
它有两个属性值:
separate:分隔,默认值
collapse:消融,融合

  • caption-side:表示标题的所处的位置,一般可以设置如下两个值:
    top:在表格的上方
    bottom:在表示的下方
    它既可以在table中设置,也可以在caption中设置。
  • border-spacing
    设置单元格边框的之间的距离,类似于border-spacing属性的作用。

但是,它有前提,必须是分离式的边框,如果是collapse,则无效。

实际上,由于表格都是基于collapse的,所以根本就用不着它。了解即可。
有了这些,结合其他的一些css属性,就可以很好的完成表格的美化。

  • 关于表格,需要注意的一些地方:
    表格是块级元素。
    不是严格意义上的块级元素,它并不会占据一整行,默认情况下,它是能够容纳表中的内容就可以了。
    我们可以通过width和height去修改它的大小,但是这个大小是指最小的那个值,实际上有可能比设置的值要大

使用css来设置边框的时候,我们可以分别对table,tr,td/th单独来设置边框,遵循盒模型的边框规则
在我们使用background设置table、tr、td的时候,table在最底层,tr是在中间,td是最上面,默认的背景颜色都是transparent,也就是透明的。

关于设置thead或者tr的背景图片的时候,在firefox/chrome都会显示有些异常,但是在ie下去认识正确的解析效果。

针对这种情况,我们需要换一种方式,针对每个单元格独立设置。然后使用背景定位实现。

ConcurrentHashMap是Java中的一个线程安全的哈希表实现,它是基于散列的数据结构,可以支持并发的读和更新操作。它相比于普通的HashMap,在多线程环境下具有更好的性能和可靠性。 ConcurrentHashMap的主要特点如下: 1. 线程安全:ConcurrentHashMap使用了一种细粒度的锁机制来保证线程安全,允许多个线程同时进行读操作,而对写操作进行了分段加锁,不会阻塞其他读操作。 2. 分段锁:ConcurrentHashMap内部将数据分成多个段(Segment),每个段都维护了一个独立的哈希表。不同的线程可以同时访问不同的段,从而提高并发性能。 3. 原子性操作:ConcurrentHashMap提供了一些原子性的操作方法,如putIfAbsent()、remove()和replace()等。这些方法可以保证在操作期间没有其他线程对数据进行修改。 4. 无需加锁的读操作:ConcurrentHashMap允许多个线程同时进行并发读操作,因为读操作不会产生冲突,不需要加锁。 5. 高效性能:ConcurrentHashMap在大多数情况下具有比Hashtable和同步的HashMap更好的并发性能。 要充分理解和使用ConcurrentHashMap,你可以关注以下几点: - 理解其线程安全机制和锁的细粒度设计,避免出现死锁和竞态条件等问题。 - 确保在多线程环境下使用正确的并发控制方法,如使用原子性操作方法而不是先检查后执行的方式。 - 注意ConcurrentHashMap的迭代器可能不是强一致性的,如果需要强一致性的结果,可以考虑使用其他手段来处理。 - 根据具体的使用场景和需求,选择合适的并发度和初始容量。 希望以上信息对你有帮助!如果你还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值