Story 1.3: Complete positioning support including auto offset resolution, clip rect, fixed scroll behavior, and containing block edge cases. Key changes: - Refactored calculate_absolute_layout() for full §10.3.7/§10.6.4 compliance - Implemented clip: rect() parsing, style computation, layout, and paint - Fixed sticky child recursion in process_deferred_absolutes - Fixed shrink-to-fit abs_cb using unpositioned padding_box - Added collapsed_borders handling in offset_children - Propagated CSS clip to descendant stacking contexts - Tightened rect() parser to reject garbage between rect and ( - Added tracing::warn for unrecognized clip tokens - Replaced hardcoded epsilon with MARGIN_EPSILON constant - Added RTL unimplemented comments on over-constrained resolution - Strengthened tests: exact assertions, delta comparisons, new coverage - 4 new tests: negative offsets, clip suppression, padding edge distinction - 5 golden tests (222-226), promoted WPT absolute-tables-016 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
19 lines
674 B
HTML
19 lines
674 B
HTML
<html>
|
|
<head>
|
|
<style>
|
|
body { margin: 0; }
|
|
.container { position: relative; width: 400px; height: 300px; background-color: lightgray; }
|
|
/* Clipped absolutely positioned element */
|
|
.clipped { position: absolute; top: 20px; left: 20px; width: 200px; height: 150px; background-color: lightyellow; clip: rect(10px, 150px, 100px, 10px); }
|
|
/* Fixed element with clip */
|
|
.fixed-clipped { position: fixed; top: 10px; right: 10px; width: 100px; height: 80px; background-color: lightblue; clip: rect(0px, 80px, 60px, 0px); }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<div class="clipped">Clipped content</div>
|
|
</div>
|
|
<div class="fixed-clipped">Fixed clip</div>
|
|
</body>
|
|
</html>
|