Hacer que las celdas de la tabla sean cuadradas

Cómo asegurarse de que cada celda de la tabla se conviertacuadrado sin usar tamaños fijos? Y sesensible cuando cambian de ancho.

table {
  width: 90%;
}
td {
  width: 30%;
}
tr {
  /** what should go here? **/
}
<table>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr>
    <td>4</td>
    <td>5</td>
    <td>6</td>
  </tr>
  <tr>
    <td>7</td>
    <td>8</td>
    <td>9</td>
  </tr>
<table>

Respuestas a la pregunta(2)

Su respuesta a la pregunta