块元素内行内块元素的一些间隔问题

块元素内存在多个行内块元素时,行内块元素存在间距

原因:元素被当成行内元素排版的时候,元素之间的空白符(空格、回车换行等)都会被浏览器处理,根据white-space的处理方式(默认是normal,合并多余空白),原来HTML代码中的回车换行被转成一个空白符,在字体不为0的情况下,空白符占据一定宽度,所以inline-block的元素之间就出现了空隙。这些元素之间的间距会随着字体的大小而变化,当行内元素font-size:16px时,间距为8px。

解决方案:

  1. 删除代码中的空白符(代码可读性差)
  2. 设置父元素字体大小为0(行内元素必须设置字体,否则会继承父元素字体大小)
  3. 浮动
  4. 设置父元素,display:table和word-spacing

行内块元素与父级块元素存在间距

原因: 基线问题,div是块级标签,img是行内块元素,在块元素里默认有3px或者4px空白(如图)

不管有没有文字,都会有一个文本基线默认向下对齐导致

解决方案:

  1. 改变基线对齐方式vertical-align:top; 
  2. 设置父元素字体大小为0(行内元素必须设置字体,否则会继承父元素字体大小)
  3. 为div定高并且设置设置overflow:hidden
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MATLAB中,可以使用数值计算工具箱中的ode45函数来求解太阳系内行星运动轨迹问题。以下是一个示例代码,可以绘制太阳系内行星的运动轨迹: ```matlab G = 6.674e-11; % 万有引力常数 M = [1.989e30, 3.301e23, 4.869e24, 5.972e24, 6.419e23, 1.899e27, 5.685e26, 8.683e25]; % 太阳、水星、金星、地球、火星、木星、土星、天王星、海王星的质量 r0 = [147e9, 0, 0, 0, -35.98e6, 0, 778.57e9, 0, 0, -227.94e9, 0, 0, 0, 1427.0e9, 0, 0, 0, 4497.1e9, 0, 0]; % 初始位置和速度(假设所有行星在平面上运动,单位是米和米/秒) % 定义ODE f = @(t, r) nbody_ode(t, r, M, G); % 求解ODE [t, y] = ode45(f, [0, 165*365*24*3600], r0); % 绘制轨迹 figure; hold on; colors = ['r', 'b', 'g', 'm', 'c', 'y', 'k', 'r', 'b']; for i = 1:9 plot(y(:, 4*i-3)/1e9, y(:, 4*i-2)/1e9, colors(i)); end axis equal; xlabel('x (10^9 m)'); ylabel('y (10^9 m)'); title('Solar System'); legend('Sun', 'Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune'); ``` 其中,nbody_ode是一个自定义的函数,可以计算所有天体的运动状态。如果你需要使用该代码,可以在同一文件夹下创建一个名为nbody_ode.m的文件,并将以下代码复制到该文件中: ```matlab function drdt = nbody_ode(t, r, M, G) % 计算太阳系内所有天体的运动状态 n = length(M); % 天体数目 drdt = zeros(4*n, 1); % 初始化运动状态 % 计算速度和加速度 v = r(n+1:end); a = zeros(3*n, 1); for i = 1:n for j = 1:n if i ~= j rij = r(4*(j-1)+1:4*(j-1)+3) - r(4*(i-1)+1:4*(i-1)+3); a(3*(i-1)+1:3*i) = a(3*(i-1)+1:3*i) + G*M(j)*rij/norm(rij)^3; end end end % 计算运动状态 drdt(1:n) = v; drdt(n+1:end) = a; end ``` 运行该代码,即可得到太阳系内行星的运动轨迹。你可以根据需要调整初始位置和速度、ODE以及绘图参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值