The prpoerty width for DIV and TABLE works differently.
Use max-width and min-width to achieve the desired results:
thead tr th:first-child, tbody tr td:first-child { width: 8em; min-width: 8em; max-width: 8em; word-break: break-all; }
Edit:
(Editing the answer clarifies the work of width in HTML, please indicate if there is something wrong or something is missing!)
In the div property, width is used to determine the size of the element, and the content matches accordingly regardless of the width of the parent and native languages.
But in the case of a table, the size of the element is calculated according to the contents, and the width property gets a lower priority. Even the size of the brother is taken into account. Thus, we must use additional properties such as min-width and max-width to force the desired size!
source share