mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Merge pull request #2740 from mbrubeck/scroll-auto
Basic parsing of `overflow: scroll` and `auto`.
This commit is contained in:
commit
966b5c2112
5 changed files with 52 additions and 9 deletions
|
@ -1395,11 +1395,6 @@ impl Fragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns true if the contents should be clipped (i.e. if `overflow` is `hidden`).
|
|
||||||
pub fn needs_clip(&self) -> bool {
|
|
||||||
self.style().get_box().overflow == overflow::hidden
|
|
||||||
}
|
|
||||||
|
|
||||||
/// A helper function to return a debug string describing the side offsets for one of the rect
|
/// A helper function to return a debug string describing the side offsets for one of the rect
|
||||||
/// box model properties (border, padding, or margin).
|
/// box model properties (border, padding, or margin).
|
||||||
fn side_offsets_debug_fmt(&self, name: &str,
|
fn side_offsets_debug_fmt(&self, name: &str,
|
||||||
|
@ -1475,13 +1470,13 @@ impl ChildDisplayListAccumulator {
|
||||||
-> ChildDisplayListAccumulator {
|
-> ChildDisplayListAccumulator {
|
||||||
ChildDisplayListAccumulator {
|
ChildDisplayListAccumulator {
|
||||||
clip_display_item: match style.get_box().overflow {
|
clip_display_item: match style.get_box().overflow {
|
||||||
overflow::hidden => {
|
overflow::hidden | overflow::auto | overflow::scroll => {
|
||||||
Some(box ClipDisplayItem {
|
Some(box ClipDisplayItem {
|
||||||
base: BaseDisplayItem::new(bounds, node, level),
|
base: BaseDisplayItem::new(bounds, node, level),
|
||||||
children: DisplayList::new(),
|
children: DisplayList::new(),
|
||||||
})
|
})
|
||||||
}
|
},
|
||||||
_ => None,
|
overflow::visible => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -515,7 +515,8 @@ pub mod longhands {
|
||||||
|
|
||||||
|
|
||||||
// CSS 2.1, Section 11 - Visual effects
|
// CSS 2.1, Section 11 - Visual effects
|
||||||
${single_keyword("overflow", "visible hidden")} // TODO: scroll auto
|
// FIXME: Implement scrolling for `scroll` and `auto` (#2742).
|
||||||
|
${single_keyword("overflow", "visible hidden scroll auto")}
|
||||||
|
|
||||||
${switch_to_style_struct("InheritedBox")}
|
${switch_to_style_struct("InheritedBox")}
|
||||||
|
|
||||||
|
|
|
@ -76,6 +76,9 @@
|
||||||
== linebreak_simple_a.html linebreak_simple_b.html
|
== linebreak_simple_a.html linebreak_simple_b.html
|
||||||
== linebreak_inline_span_a.html linebreak_inline_span_b.html
|
== linebreak_inline_span_a.html linebreak_inline_span_b.html
|
||||||
== overconstrained_block.html overconstrained_block_ref.html
|
== overconstrained_block.html overconstrained_block_ref.html
|
||||||
|
== overflow_auto.html overflow_simple_b.html
|
||||||
|
== overflow_scroll.html overflow_simple_b.html
|
||||||
|
== overflow_simple_a.html overflow_simple_b.html
|
||||||
== position_fixed_background_color_a.html position_fixed_background_color_b.html
|
== position_fixed_background_color_a.html position_fixed_background_color_b.html
|
||||||
== position_fixed_overflow_a.html position_fixed_overflow_b.html
|
== position_fixed_overflow_a.html position_fixed_overflow_b.html
|
||||||
== noscript.html noscript_ref.html
|
== noscript.html noscript_ref.html
|
||||||
|
|
22
src/test/ref/overflow_auto.html
Normal file
22
src/test/ref/overflow_auto.html
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<style>
|
||||||
|
#first {
|
||||||
|
height: 100px;
|
||||||
|
width: 100px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
#second {
|
||||||
|
height: 100px;
|
||||||
|
width: 200px;
|
||||||
|
background: green;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="first">
|
||||||
|
<div id="second">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
22
src/test/ref/overflow_scroll.html
Normal file
22
src/test/ref/overflow_scroll.html
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<style>
|
||||||
|
#first {
|
||||||
|
height: 100px;
|
||||||
|
width: 100px;
|
||||||
|
overflow: scroll;
|
||||||
|
}
|
||||||
|
#second {
|
||||||
|
height: 100px;
|
||||||
|
width: 200px;
|
||||||
|
background: green;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="first">
|
||||||
|
<div id="second">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Add table
Add a link
Reference in a new issue