12.23~12.30周报

本周学习聚焦于CSS文本属性的深入理解,包括文本缩进、水平对齐、字间隔、字母间隔、字符转换及文本装饰等技巧,同时探讨了链表的基础概念。在前端开发中,掌握了如何优化文本显示效果,提升网页美观度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

12.23~12.30周报

【###### 每次做网页都有如下感想(作为一个初学者):
想让一个页面好看就必须有好看的图片,搭配好看的颜色,但有时你的页面必须出现文字呀,却又不知道怎样把文字变得好看一点:感觉天了文字之后整个页面都不如之前好看了,所以这里我们就要学习一个新的技能:css文本属性】

本周学习的知识点

  • css文本属性深入
  • 链表
  • css文本

本周分享知识点

  • css文本属性

1.文本缩进

test-indent属性 所有元素的第一行都可以缩进一个给定的长度,这个长度的值可以时正值,可以是负值也可是百分数。

一般的,可以为所有块级元素应用text-indent,但无法将这个属性应用到行内元素,图像之类的替换元素上也无法应用text-indent属性。不过,如果一个块级元素(如段落)的首航中有一个图像,他会随着该行的其余文本移动。/其实如果想把一个行内元素的第一行缩进,也可以通过改变内左边距和外边距来实现相同的效果/。

eg1:

{test-indent: 10px;}
{tese-indent: 10cm;}
{test-indent: 5em;}
{test-indent: -5em;}
  • 这里的em指字体高,任意浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为16px*62.5%=10px, 这样12px=1.2em,10px=1em,也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。em有如下特点:
  1. em的值并不是固定的;
  2. em会继承父级元素的字体大小。

分享这样一段代码:

<!--继承-->
div#outer{
    width: 500px;
}
div#inner{
    test-indent: 10%;
}
p{
    width: 200px;
}
//
<div id="outer">
<div id="inner">just once test
<p>this is a example.</p>
</div>
</div><!--p的文字也会错仅为原来的10%因为它继承了上面inner的属性;-->
  1. 水平对齐

test-align

值left丶right和center会导致元素中的文本分别左对齐丶右对齐和居中。
justify 两端对齐
3. 字间隔

word-spacin属性

可改变字(单词)之间的标准间隔。
同样值可以为正值也可以为负值

eg:

{word-spacing:30px;}
{word-spacing:-0.5em;}
  1. 字母间隔
    letter-spacing属性
    修改字母之间的间隔
    eg:
letter-spacing:-0.5em;
  1. 字符转换
    text-transform属性:
属性功能
none无变动
uppercase转大写字母
lowercase专小写字母
capitalize首字母大写

6.文本装饰

text-decoration属性:

属性功能
none不改变
underline下划线
overline上划线
line-through在文本中间画一条贯穿线
blink让文本闪烁

我觉得锚与正常文本之间在视觉上的唯一差别就是颜色吧,如果你想让你的锚变好看点可以利用文本装饰,比如:

a:link a:visited{
    text-decoration:uderline overline;
}

本周遇到的难点问题及疑惑

  1. 之前写网页时,遇到那种要弄一个超链接,弄好之后特别不好看,只有蓝色的字体和下划线,直到学习了文本装饰后才发现原来那个下划线只需要一个简单的属性就能把它弄没。
  2. 再打c语言链表这部分题的时候发现结构题数组这方面自己还是没弄太懂,下去还是要好好看看那一章。
  3. 写网页时发现对那种本地图片弄成在线图片不太明白,下去要好好研究研究。

下周学习计划

  1. 首先一定要把结构体数组那块儿弄懂。
  2. 前端的下周决定学习css框模型。
  3. 好好复习丶备考期末。
### 判断子网是否可以合并 对于给定的两个子网12.23.34.0和12.23.33.0,要判断这两个子网能否合并为一个超网,需遵循特定的方法。 为了使两个子网能够合并,其网络部分必须具有相同的高位比特序列,并且这些子网应属于同一范围内的连续地址块。具体来说,在二进制表示下,两者的差异仅存在于最低几位上,而其余较高位完全一致[^1]。 针对所提到的例子: - 将IP地址转换为二进制形式: - `12.23.33.0` 转换成二进制是 `00001100 . 00010111 . 00100001 . 00000000` - `12.23.34.0` 转换成二进制是 `00001100 . 00010111 . 00100010 . 00000000` 观察到第三字节的不同之处在于最后一位不同,这意味着如果想要将它们组合起来,则需要找到共同的部分并调整子网掩码长度来覆盖两者之间的变化。然而,由于第三个八位组中的差别超过了单个bit的位置(即从`.33.`变为`.34.`),因此无法简单地通过增加子网掩码长度实现这一点而不影响其他可能的有效地址空间。 实际上,当试图创建包含以上两个子网的新CIDR时,会发现这样做将会引入额外不需要的地址范围,因为这涉及到跨越多个独立的/24级别的子网边界。理想情况下,应该寻找一种方式使得新形成的超级网段只精确囊括所需的原始子网集合,而不是更广泛的一系列潜在可用但未指定使用的IP地址区间[^3]。 综上所述,基于现有信息,12.23.34.0 和 12.23.33.0 不适合直接合并成单一的超网,除非有更大的上下文允许这样的操作,比如在一个更大规模的企业内部网络规划中考虑到了这种设计的需求。 ```python def can_merge_subnets(subnet_a, subnet_b): """Check if two subnets can be merged into a supernet.""" # Convert IP addresses to binary strings and compare them bit by bit. ip_parts_a = list(map(int, subnet_a.split('.'))) ip_parts_b = list(map(int, subnet_b.split('.'))) bin_ip_a = ''.join([format(part, '08b') for part in ip_parts_a]) bin_ip_b = ''.join([format(part, '08b') for part in ip_parts_b]) common_prefix_length = 0 while (common_prefix_length < len(bin_ip_a)) and \ (bin_ip_a[common_prefix_length] == bin_ip_b[common_prefix_length]): common_prefix_length += 1 return common_prefix_length >= 24 # Assuming /24 or larger networks are considered. print(can_merge_subnets('12.23.33.0', '12.23.34.0')) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值