mirror of
https://github.com/servo/servo.git
synced 2025-08-07 06:25:32 +01:00
layout: Implement most of border-collapse
per CSS 2.1 § 17.6.2.
Known issues: * Collapsed borders do not correctly affect the border-box of the table itself. * The content widths of all cells in a column and the content height of all cells in a row is the same in this patch, but not in Gecko and WebKit. * Corners are not painted well. The spec does not say what to do here. * Column spans are not handled well. The spec does not say what to do here either.
This commit is contained in:
parent
92359c7b9a
commit
48299a53cb
22 changed files with 1975 additions and 520 deletions
|
@ -15,7 +15,7 @@ use layout_debug;
|
|||
use model::IntrinsicISizesContribution;
|
||||
use text;
|
||||
|
||||
use collections::{VecDeque};
|
||||
use collections::VecDeque;
|
||||
use geom::{Point2D, Rect};
|
||||
use gfx::font::FontMetrics;
|
||||
use gfx::font_context::FontContext;
|
||||
|
@ -28,8 +28,8 @@ use std::num::ToPrimitive;
|
|||
use std::ops::{Add, Sub, Mul, Div, Rem, Neg, Shl, Shr, Not, BitOr, BitAnd, BitXor};
|
||||
use std::sync::Arc;
|
||||
use std::u16;
|
||||
use style::computed_values::{display, overflow_x, text_align, text_justify, text_overflow};
|
||||
use style::computed_values::{vertical_align, white_space};
|
||||
use style::computed_values::{border_collapse, display, overflow_x, text_align, text_justify};
|
||||
use style::computed_values::{text_overflow, vertical_align, white_space};
|
||||
use style::properties::ComputedValues;
|
||||
use util::geometry::{Au, MAX_AU, ZERO_RECT};
|
||||
use util::logical_geometry::{LogicalRect, LogicalSize, WritingMode};
|
||||
|
@ -1197,7 +1197,7 @@ impl Flow for InlineFlow {
|
|||
{
|
||||
let this = &mut *self;
|
||||
for fragment in this.fragments.fragments.iter_mut() {
|
||||
fragment.compute_border_and_padding(inline_size);
|
||||
fragment.compute_border_and_padding(inline_size, border_collapse::T::separate);
|
||||
fragment.compute_block_direction_margins(inline_size);
|
||||
fragment.compute_inline_direction_margins(inline_size);
|
||||
fragment.assign_replaced_inline_size_if_necessary(inline_size);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue