- From: Mike Bremford via GitHub <sysbot+gh@w3.org>
- Date: Thu, 27 Feb 2020 19:22:12 +0000
- To: public-css-archive@w3.org
I filed a similar comment on the [PR](https://github.com/web-platform-tests/wpt/pull/21701) but the discussion should be had here really as it's easier to find.
1. I don't think the [list of properties](https://drafts.csswg.org/css-page-3/#properties-list) specified as being applicable to the @top-center (etc.) rules also limit the properties that can be set in running content, because it doesn't include "display". If display isn't allowed, you can't turn a table into running content. But you can, in Prince, WeasyPrint and our own formatter, which are the only three I've tried: an example:
```html
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
@page {
margin: 72px;
@top-center {
content: element(heading);
}
}
table {
position: running(heading);
}
td {
border: 1px solid red;
}
div {
break-before: page;
}
</style>
</head>
<body>
<table>
<tr><td>a</td><td>b</td></tr>
<tr><td>c</td><td>d</td></tr>
</table>
<div id="div1">Table in heading</div>
<div id="div2">Table in heading</div>
</body>
</html>
```
2. You can easily make an argument for allowing `position:running` from within a `display:none`. We can do it with `string-set`, after all. Why can I set the title in this example?
```html
<head>
<title>A book about water</title>
<style>
title {
string-set: title content()
}
</style>
</head>
```
but not this?
```html
<head>
<span id="title">A book about H<sub>2</sub>0</span>
<style>
#title {
position: running(title);
}
</style>
</head>
```
Content set from within a `display:none` block doesn't exist on any page, so it's never going to match a "first", "first-except" or "last" value in `string()` or `element()`. But that's apparently not a problem for Strings, so shouldn't be a problem for elements either. This area needs clarification anyway; see https://github.com/w3c/csswg-drafts/issues/4634
----
To sum up: I have no objection to opening `position: running()` up to elements defined in `display: none` blocks, floats, absolutes etc, although I think improving the way "first item on the page" is defined as suggested in https://github.com/w3c/csswg-drafts/issues/4634 is important to remove ambiguity. And I don't think the list of properties needs to be limited in the same way it is for page margin boxes.
--
GitHub Notification of comment by faceless2
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/4788#issuecomment-592132773 using your GitHub account
Received on Thursday, 27 February 2020 19:22:14 UTC